创建对象的引用数组。

时间:2017-05-12 22:23:31

标签: system-verilog

我正在寻找通过创建带有逻辑变量引用的数组数组来简化代码的方法。这将让我迭代数组。这是我想象的伪代码(这是我将在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

谢谢,

1 个答案:

答案 0 :(得分: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