2017-07-20 2 views

Antwort

1

Sie können keine Bereiche in der Enumeration haben. Der Rest hängt jedoch davon ab, wie Sie es verwenden würden. Zum Beispiel in der Fallanweisung:

case(sel) 
    BLUE: do-blue-function; 
    RED: do-red-function; 
    default: do-other-function; 
endcase 
0

Aufzählungen im System-Verilog können Werte außerhalb des Bereichs haben. Dies ist besonders nützlich, wenn FSMs mit Aufzählungen beschreiben, wenn Sie einen Vier Zustand Typen als Basistyp, zB wählen:

//   a four-state base type (with default value 3'bxxx) 
//    | 
//    |  the base value of IDLE will be 3'b000 
//    |  | 
//    V  V 
typedef enum logic[2:0] {IDLE, GO1, GO2} state_type; 
state_type state; 

Der Standardtyp von logic ist x, so standardmäßig die Variable state oben wird den Wert 3'bxxx haben. Daher können wir mithilfe eines Basistyps mit vier Zuständen einen nicht initialisierten Status modellieren, der überprüft, ob der FSM ordnungsgemäß zurückgesetzt wurde.

Also fragen Sie "Was passiert, wenn ein Benutzer einen Wert wählt, der auch nicht zugewiesen ist?" Die Variable hat diesen Wert und, wie in Serges Beispiel case, wird in keiner der definierten Aufzählungswerte gleich sein.

Verwandte Themen