2017-05-12 81 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的一部分。 –