2015-01-07 18 views

Antwort

9

Sie auch $cast verwenden können, um zu überprüfen, ob es gültig ist, und zugleich kopieren . Also anstatt das zu tun: cmd = my_cmd'(value_from_bus);, können Sie dies tun:

if ($cast(cmd, value_from_bus)) 
    $display("Valid: %s", cmd.name()); 
else 
    $display("Invalid"); 

Beispiel auf EDA Playground

3

Sie können Namen Enum der() verwenden Funktion:

if (cmd.name() == "") 
    $display("%0d is bad", cmd); 
    else 
    $display("%s:%0d is good", cmd.name(), cmd); 

Beispiel auf EDA Playground

+0

Interessant! Obwohl ich bezweifle, dass es synthetisierbar ist. – Ari

+0

In Quartus Prime, scheiterte dies in der Analyse: "Name ist nicht unter diesem Präfix deklariert" – Purag