2012-12-20 13 views

risposta

14

Sì, è possibile restituire una coda da una funzione. Ma per farlo devi definire un nuovo tipo usando typedef e restituisci quel tipo.

typedef integer queue_of_int[$]; 

function queue_of_int get_register_name(); 
    queue_of_int ret; 
    ret.push_back(1); 
    ret.push_back(2); 
    return ret; 
endfunction 

Si noti che nella typedef il [$] viene dopo il nome del tipo, mentre il tipo di elemento di coda è prima del nome del tipo.

1

giù c'è l'esempio di codice che ha lavorato per me ....

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

// Unisce prima e la seconda fila, // con la seconda fila che viene aggiunto alla fine del primo

function bitQueue mergeEnd(bit[31:0] queue_1[$], bit[31:0] queue_2[$]); 
    foreach (queue_2[i]) queue_1.push_back(queue_2[i]); 
    return queue_1; 
endfunction