2016-09-28 95 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