Wenn ich eine Case-Anweisung schreibe, die Platzhalter für die Fälle enthält, wie werden mehr oder weniger spezifische Fälle behandelt?Wie behandelt SystemVerilog mögliche Platzhalterkonflikte in Fallanweisungen?
always_comb case(selector)
4'b0???: begin // Pick me if the msb is 0, unless the two lsb's are 01.
end
4'b0?01: begin // Pick me if the msb is 0 and the two lsb's are 01.
end
default: begin // Pick me if the msb is X or 1.
end
endcase
In dem vereinfachten Beispiel oben, der erste Fall (alle Platzhalter) können für einen beliebigen Wert von Selektor ausgewählt werden, aber ich will es die spezifischste Fall nicht wählen. Werden Fälle behandelt?
Fälle sind immer prioritätsbasiert und sobald eine case-Anweisung übereinstimmt, wird die gesamte nachfolgende Anweisung nicht ausgeführt. –