2015-01-07 15 views

Trả lời

9

Bạn cũng có thể sử dụng $cast để kiểm tra xem nó có giá trị, và sao chép cùng một lúc . Vì vậy, thay vì thực hiện: cmd = my_cmd'(value_from_bus);, bạn có thể làm điều này:

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

Ví dụ trên EDA Playground

3

Bạn có thể sử dụng tên enum của() chức năng:

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

Ví dụ trên EDA Playground

+0

Thú vị! Mặc dù tôi nghi ngờ nó là tổng hợp. – Ari

+0

Trong Quartus Prime, điều này không thành công trong phân tích: "tên không được khai báo theo tiền tố này" – Purag

Các vấn đề liên quan