2015-01-05 84 views
1

我看過的地方,非阻塞賦值是不允許的動態對象,如類對象,動態數組等NBA動態對象

我的示例代碼

class dyn_class; 
    logic a; 
    function void put(); 
    a <= 1'b1; 
    endfunction 
endclass 

module TB(); 
    dyn_class dyn_obj = new(); 
    initial 
    dyn_obj.put(); 
endmodule 

的錯誤彈出up is 錯誤VCP7049「對動態對象的非阻塞分配:this.a.」 「testbench.sv」7 14

有誰能說出爲什麼會出現這種情況嗎?

我還在某處讀過一個提議,在下一個版本中刪除此規則。

模擬器是edaplayground。

+0

您使用的是什麼編譯器/模擬器?您的示例在VCS 2013中運行良好。 – Unn

+0

模擬器是edaplayground – user1978273

回答

1

1800-2012 LRM取消了目標班級成員對NBAs的限制。但是,針對自動變量和動態大小數組的限制仍然存在。 (這可以在移除具有待處理事件的對象時簡化內存管理)。

Modelsim支持從2012年發佈的10.2版本開始。