Für mein Abiturprojekt habe ich mich entschieden, eine Basis-CPU aus diskreten Komponenten zu bauen. Ich plane, einen 5-V-Logikpegel zu verwenden, und das aktuelle Design erfordert etwa 2000-3000 N-Kanal-MOSFET-Transistoren. Diese Frage bezieht sich speziell auf den Wert des Pullout-Widerstands in der NMOS-Logik.
Bei meinen Steckbretttests habe ich nur 10k-Widerstände verwendet, da ich einen Haufen herumliegen hatte und der Wert typisch für einen Pull-up-Widerstand ist, sodass er vernünftig erschien, aber möglicherweise nicht optimal für das ist, was ich erreichen möchte.
Soweit ich weiß, ist die Wahl dieses Werts ein Kompromiss zwischen dem Stromverbrauch der CPU und der Geschwindigkeit, die jedes Gate benötigt, um seinen Ausgangswert zu erreichen, und daher die maximale Taktgeschwindigkeit, mit der ich es fahren könnte.
Stromverbrauch: Nehmen wir an, dass jeder Transistor einen 10k-Widerstand hat und alle Transistoren eingeschaltet sind. Da typische Werte für R_dson viel kleiner als 10k sind, können wir sie ignorieren. Dies bedeutet, dass der Stromverbrauch in der Größenordnung von 3000 * (5 ^ 2) / 10000 = 7,5 Watt liegen würde. Das erscheint überraschend niedrig – ist dieser Wert angemessen?
Taktrate: Hier tappe ich eher im Dunkeln. Bei welcher Taktgeschwindigkeit könnte ich NMOS-Schaltkreise mit einem 10k-Pullup im Vergleich zu einem 1k-Pullup ansteuern? Wie wäre das im Vergleich zu CMOS-Schaltungen mit vergleichbaren MOSFETs?
Das Timing würde hauptsächlich von der kapazitiven Last an jedem Logikgatter abhängen, was sowohl die Verdrahtungskapazität als auch die Kapazität der MOSFET-Gatter, die Sie ansteuern, umfassen würde.
Beispielsweise hat der 2N7000 eine Eingangskapazität von typisch 20 pF (max. 50 pF). Wenn Ihr durchschnittlicher Fanout 3 beträgt, plus etwas Verdrahtungskapazität, ergibt dies eine typische Last von 100 - 200 pF. Bei einem 10K-Pullup erhalten Sie eine RC-Zeitkonstante von 1 - 2 µs. Für ein zuverlässiges Schalten müssten Sie wahrscheinlich mindestens zwei Zeitkonstanten für eine "Gate-Verzögerung" zulassen, wir sprechen also von 2 - 4 µs pro Gate.
Um nützliche Arbeit zu leisten, müssen Sie eine maximale Anzahl von Gate-Verzögerungen pro Taktperiode zulassen. Dies hängt von Ihrem spezifischen Design ab, aber eine Zahl wie 6 bis 10 wäre typisch. Wir sprechen jetzt also von einer Taktperiode von 12 - 40 µs oder Frequenzen im Bereich von 25 - 80 kHz.
Das Umschalten auf einen 1K-Widerstand würde eine Skalierung der Frequenz um etwa den Faktor 10 ermöglichen.
Jasen
Adam Haun
Michal
David Tweed
David Tweed
Lorenzo Donati unterstützt die Ukraine
Michal