2016-09-28 88 views
0

我有以下的队列,我在我的顺序创建:如何初始解压缩阵列与另一解压阵列

bit [31:0] transfers_seq [$]; 

我输入下列值到队列:

{{00000000, 12345678, 54871245},{12454612, 00000000, 12367894}} 

现在我有将transfers_seq传递到交易文件中的另一个队列,该队列通过我在交易文件中写入的初始功能

交易文件:

class axi_transaction extends uvm_sequence_item(); 
    bit [31:0] transfers [$]; 

function init (bit [31:0] transfers2init [$]); 

endfunction: init 

如何在init函数中将“bit [31:0] transfers2init [$]”赋值给“bit [31:0] transfers [$]”?

回答

1

你的函数需要返回的东西,并返回队列,你需要一个typedef

typedef bit [31:0] queue [$]; 

然后,在你的功能,你可以一个队列复制到其他(如在另一个答案建议这里):

function queue init (queue transfers2init); 
    init=transfers2init; 
endfunction: init 

但是,这是如此简单,你并不真的需要一个功能。

https://www.edaplayground.com/x/3kyE

2

您可以在一个简单的队列分配给另一个:

transfers = transfers2init; 

它将transfer2init的元素复制到传输。你可以在这里查看: https://www.edaplayground.com/x/3q3f

0

你可以直接指定。

transfer = transfer2init