Diese Warnung erhalten Sie möglicherweise während der Quartus® II Software-Analyse und Synthese, wenn eine "Chipsatz-State-Maschine" (FSM) zusammengelegt wird. Dies ist eine ungültige Warnung, die von der Quartus II Software Version 6.0 SP1 angezeigt wird. Ab Version 6.1 der Quartus II Software wird keine falsche Warnmeldung angezeigt.
Diese Warnung tritt auf, wenn Sie die Zustandsvariable für einen abgeleiteten FSM einem Ausgabeport zuweisen. Im folgenden Beispiel arbiter_state
wird eine Ausgabe der Größe [1:0]
und mystate
der zugewiesene Wert angegeben, und sie wird in einer Fallaussage mit 4 möglichen Optionen verwendet:
assign arbiter_state = mystate;
case (mystate)
...Branch 1...
...Branch 2...
...Branch 3...
...Branch 4...endcase
Wenn Quartus II Analyse und Synthese auf ein FSM schließen, codiert es die Zustandsvariable mit one-hot encoding. In diesem Fall hat mystate 4 Zustände und hat daher 4 Bits. In diesem Beispiel codiert die Software vor der Implementierung der Zuweisung die Zustandsvariablemystate
, wenn Sie das aufgerufene arbiter_state
Signal zuweisenmystate
. Die Software überprüft jedoch, ob die Bit-Kürzung vor der Kodierung des Wertes und nicht danach erfolgt. Daher interpretiert die Software die rechte Seite der Zuweisung als 4 Bits und nicht als 2 und gibt die Warnmeldung aus. Die Abschwung-Warnung hat keine Auswirkungen auf die Designfunktionalität.
Um die Warnmeldung in der Quartus II Software Version 6.0 und früher zu beseitigen, können Sie die Größe des Ziel-Ausgabesignals (arbiter_state
im oben genannten Beispiel) auf 4 Bits ändern und nur die unteren zwei, am wenigsten signficant, Bits verwenden.