2017-05-12 137 views
0

我正在尋找方法來通過創建具有邏輯變量引用的數組數組來簡化我的代碼。這將讓我遍歷數組。這是我設想的僞代碼(這是我在C++中所做的)。因爲他們是位於不同地方的RTL的一部分,所以我不能將它們放在數組中。創建對象的引用數組。

logic A; 
logic B; 
task my_algorithm(); 
    ref logic elements[2] = {A, B}; // This wrong, ref cannot be used in this   context 
    foreach(elements[v]) begin 
    // Do same work on each element 
    end 
endtask : my_algorithm 

感謝,

回答

0

您可以使用被複制在進入常規,然後在從程序退出複製出來inout參數。 (使用函數代替任務,除非例程需要消耗時間)

function automatic void my_algorithm(inout logic A, B); 
    logic elements[2] = {A,B}; 
    foreach(elements[v]) begin 
     // 
    end 
    {<<{A,B}} = elements; 
endfunction 
+0

感謝戴夫,看起來非常好的解決方案。希望有一天參考數組將成爲LRM的一部分。 –