100 MHz Taktfrequenz für eine 16 MHz MCU

Ich möchte fragen, was passiert, wenn ich beispielsweise 100 MHz als Taktfrequenz für eine MCU einstelle, die mit einer maximalen Geschwindigkeit von 16 MHz arbeiten kann. Warum funktioniert es nicht?

Vielleicht klappt es, höchstwahrscheinlich nicht. Frühe SX-Mikrocontroller konnten oft mit Geschwindigkeiten nahe 100 MHz laufen - das war weit über ihrer Nenngeschwindigkeit.

Antworten (3)

Wenn der Chip ausreichend überdimensioniert ist, könnte es funktionieren.

Diese Faktoren werden sich unter Berücksichtigung physikalischer, analoger und digitaler Faktoren dagegen verschwören:

  • Einschränkungen für Halbleitergeräte
    • Die Erwärmung in CMOS-Gattern ist proportional zur Taktschaltfrequenz, sodass das Gerät überhitzen kann oder thermisches Rauschen Bit-Flips verursachen kann
    • Transistoren können möglicherweise nicht schnell genug schalten, um das höherfrequente Signal durchzulassen
    • CMOS-Leckströme können Bit-Flips verursachen
  • Einschränkungen bei Halbleiterschaltungen
    • Parasitäre Kapazitäten und Induktivitäten in den IC-Verbindungen können Hochfrequenz dämpfen oder Klingeln verursachen und im Allgemeinen die Signalintegrität untergraben, was zu einem internen Kommunikationsausfall führt
    • Interne Phasenregelkreise, die zum Erzeugen anderer interner Takte verwendet werden, können sich möglicherweise nicht stabilisieren, was zu Zeitchaos führt
    • Taktverteilungsschaltungen können Chip-übergreifende Funktionen nicht synchronisieren
    • Wie bereits erwähnt, wird die kombinatorische Logik, von der normalerweise erwartet wird, dass sie in einer bestimmten Zeit abgeschlossen wird, möglicherweise nicht abgeschlossen, was zu Logikfehlern führt
    • Wo vorhanden, können analoge VLSI-Geräte (On-Chip-Kondensatoren, Widerstände) einen unzureichenden Frequenzgang haben, um mit internen Signalen höherer Frequenz fertig zu werden
  • Externe Systeme
    • Externe ICs können vom Takt der MCU abhängen und auch ihre Grenzen überschreiten
    • Eine nicht für die höhere Frequenz ausgelegte Leiterplatte kann die Signalintegrität verlieren
    • Die MCU verfügt wahrscheinlich nicht über genügend Entkopplungskondensatoren, so dass sie den Oszillator des Netzteils destabilisieren, interne „Brownouts“ erfahren oder andere ICs stören kann, indem sie den Stromversorgungsleitungen Rauschen auferlegt
Danke! Sie haben erwähnt, dass Transistoren möglicherweise nicht schnell genug schalten können, um das Signal mit höherer Frequenz weiterzuleiten. Wenn ich fragen darf, welche Parameter eines Transistors beeinflussen die Schaltgeschwindigkeit?
@ user4709436 Kurz gesagt, die Gate-Kapazität des FET. Weitere Details: electronic.stackexchange.com/questions/20510/…

Es wird das Timing für einen nicht einhalten. Alle Pfade durch die Schaltkreise des Chips sind so ausgelegt, dass sie mit einer bestimmten Geschwindigkeit fehlerfrei laufen. Alles ist zeitlich abgestimmt, um zusammenzuarbeiten, es ist Teil des Entwerfens eines Chips. Wenn Sie diese Geschwindigkeit überschreiten, verletzen Sie diese Timings und beginnen, Fehler zu machen.

Wenn Sie zum Beispiel viel Zeit hatten, damit ein Signal vor der nächsten Uhr auf 16 MHz hoch geht, haben Sie viel weniger Zeit, wenn Ihre nächste Uhr auf 100 MHz kommt.

Eine andere Sache, an die man denken sollte, ist Hitze. Ihr Paket ist auf bestimmte Thermiken ausgelegt. Da Ihre erhöhte Taktrate diese Leistungsrate zuletzt drückt, riskieren Sie auch Schaden.

Das ist sowieso eine breite Art, es auszudrücken.

Typische digitale Hochgeschwindigkeitsschaltungen bestehen aus getakteten Registern und ungetakteter kombinatorischer Logik. Wenn sich die Registerausgänge ändern, berechnet die kombinatorische Logik den nächsten Wert der getakteten Register. Die kombinatorische Logik braucht einige Zeit, um ihren neuen korrekten Zustand zu erreichen. Sie müssen also zwischen den Taktflanken eine gewisse Zeit verstreichen lassen, damit dieser Vorgang korrekt abgeschlossen werden kann. Wenn Sie einen Prozessor übertakten, besteht die Gefahr, dass die kombinatorische Logik nicht genug Zeit hat, um ihren korrekten Zustand zu erreichen, und so der alte Wert in einem Register gespeichert wird. Dies führt zu einem undefinierten und fehlerhaften Verhalten des Prozessors. Berechnungsergebnisse können falsch sein. Der Programmfluss kann zu einer unvorhersehbaren und falschen Adresse springen. Kurz gesagt, wenn Sie bis zu dem Punkt übertakten, an dem der Prozessor nicht mehr funktioniert, es wird wahrscheinlich keine ordnungsgemäße oder behebbare Fehlfunktion sein. Der Ausdruck "Timing nicht erfüllt" bedeutet im Grunde, dass die kombinatorische Logik ihren endgültigen stabilen Zustand nicht vor der nächsten Taktflanke erreichen wird.