From 7a86d06cf84651790a26bf77bea2fd90da75e3d3 Mon Sep 17 00:00:00 2001 From: Daniel Kluge Date: Fri, 17 Apr 2026 09:35:49 +0200 Subject: [PATCH] Fix some CMOS errors --- .../book/grundlagen/0-1_einsen_und_nullen.mdx | 12 +- .../book/grundlagen/assets/01-transistor.svg | 10 +- .../book/grundlagen/assets/02-cmos.json | 65 ++- .../book/grundlagen/assets/02-cmos.svg | 407 +++++++----------- 4 files changed, 213 insertions(+), 281 deletions(-) diff --git a/src/content/book/grundlagen/0-1_einsen_und_nullen.mdx b/src/content/book/grundlagen/0-1_einsen_und_nullen.mdx index 5ebe878..15c89af 100644 --- a/src/content/book/grundlagen/0-1_einsen_und_nullen.mdx +++ b/src/content/book/grundlagen/0-1_einsen_und_nullen.mdx @@ -210,12 +210,16 @@ Dieser funktioniert genau andersrum: Wenn am Gate eine Spannung anliegt, ist der Dadurch ist dann unser Ausgang immer definiert. Hier nochmal als Schaubild: -Eine CMOS-Schaltung mit a und b als Eingänge, die ein Und-Gatter bilden. +Eine CMOS-Schaltung mit a und b als Eingänge, die ein Und-Gatter bilden. -Statt je nachdem, ob bei $a$ und $b$ Spannung anliegt, fließt der Strom von "oben" oder "unten" durch die Transistoren und unser $Out$ nimmt die Spannung von $High$ oder $Low$ an. +Statt je nachdem, ob bei $a$ und $b$ Spannung anliegt, fließt der Strom von "oben" oder "unten" durch die Transistoren und unser $Out$ nimmt die Spannung von $High$ oder $Low$ an. +Genauer: Wenn $a$ und $b$ beide High sind, verbinden die "oberen" Transistoren den Ausgang mit $High$ und die "unteren" sind nicht mehr verbunden. +Wenn $a$ oder $b$ Low sind, ist mindestens einer der "oberen" Transistoren nicht mehr durchgeschaltet und mindestens einer der "unteren" verbindet den Ausgang zu $Low$. $High$ und $Low$ sind dabei die Spannungen, die für 1 und 0 stehen. -Was genau die zugehörigen Spannung ist, hängt vom jeweiligen System ab. -Die Spannungen sind so zu wählen, dass sie von den Transistoren sicher erkannt werden können. + +> [!info] +> Wie genau die Spannungen sind und ob jetzt eine hohe oder niedrige Spannung für 1 oder 0 steht, kann von System zu System unterschiedlich sein. +> Nachfolgend ist das auch gar nicht mehr so wichtig, da wir einfach nur noch 1 und 0 als Werte benutzen werden. Aber gut, jetzt haben wir schon ein Und-Gatter. Man kann sich nun selbst überlegen, wie die anderen Gatter mit Transistoren aufgebaut werden können. diff --git a/src/content/book/grundlagen/assets/01-transistor.svg b/src/content/book/grundlagen/assets/01-transistor.svg index 9f2886f..021ae47 100644 --- a/src/content/book/grundlagen/assets/01-transistor.svg +++ b/src/content/book/grundlagen/assets/01-transistor.svg @@ -56,7 +56,7 @@ - + - + - + - - - - + + + @@ -131,61 +109,25 @@ stroke-dasharray="0.4pt 0pt" stroke-opacity="1" stroke-width="0.5333333333333333" - stroke="hsl(0 0 85)" + stroke="var(--text-main, #e0e7f0)" /> - - - - + + + - - - - + + + @@ -193,10 +135,10 @@ @@ -206,7 +148,7 @@ stroke-dasharray="0.4pt 0pt" stroke-opacity="1" stroke-width="0.5333333333333333" - stroke="hsl(0 0 85)" + stroke="var(--text-main, #e0e7f0)" /> @@ -216,43 +158,43 @@ stroke-dasharray="0.4pt 0pt" stroke-opacity="1" stroke-width="0.5333333333333333" - stroke="hsl(0 0 85)" + stroke="var(--text-main, #e0e7f0)" /> @@ -262,39 +204,21 @@ stroke-dasharray="0.4pt 0pt" stroke-opacity="1" stroke-width="0.5333333333333333" - stroke="hsl(0 0 85)" + stroke="var(--text-main, #e0e7f0)" /> - - + @@ -302,56 +226,56 @@ @@ -361,151 +285,128 @@ stroke-dasharray="0.4pt 0pt" stroke-opacity="1" stroke-width="0.5333333333333333" - stroke="hsl(0 0 85)" + stroke="var(--text-main, #e0e7f0)" /> + + + + + + + + + + + + - + + + - - - - - - - - - - - - - - - - - - - + + + - - - - + + + + + + + + + + + + + +