Ein FPGA muss initialisiert werden, um einen ordnungsgemäßen und zuverlässigen Betrieb sicherzustellen. Das kann durch Resets oder auf andere Weise geschehen. Dieses Thema wird jedoch häufig vernachlässigt und auf die Verwendung von Code-Mustern in Verilog oder VHDL reduziert. Dahinter steht die falsche Annahme, dass alles in Ordnung sei, wenn es ein Reset-Signal gibt und dieses so verwendet wird, wie es alle anderen auch tun.
Diese Serie von drei Seiten versucht, die wichtigsten Überlegungen zu diesem Thema zu skizzieren.
Die erste Seite erklärt, warum die übliche Verwendung von asynchronen Resets (asynchronous resets) höchstens teilweise funktioniert. Wer überhaupt keine asynchronen Resets verwendet, kann diese Seite getrost überspringen.
Die zweite Seite vergleicht synchrone Resets (synchronous resets) mit asynchronen Resets (asynchronous resets) und geht außerdem auf weitere Möglichkeiten zur Initialisierung der Logik ein.
Die dritte Seite verfolgt einen pragmatischeren Ansatz und schlägt eine Reset-Steuerung vor, die das FPGA sowohl nach dem Einschalten als auch auf eine Reset-Anforderung des Benutzers hin (z. B. über einen Reset-Taster) korrekt hochfährt.
Also noch einmal: Dies sind die drei Seiten, als Links mit ihren Titeln: