Skip to content

SystemVerilog Queues Cheatsheet

Example code on EDA Playground

Initialize queue

logic [7:0] q[$] = {1,2,3,4,5};

Size of queue

$display("q size", q.size());

Push into queue

q.push_front(10);
q.push_back(11);

Pop from queue

a = q.pop_front();
a = q.pop_back();

Insert and delete

q.insert(2, 'd20);
q.delete(3);

Function to print queue contents in a single line

function void print_queue(string tag, logic[7:0] q[$]);
    foreach (q[i]) $sformat(tag, "%s %0d", tag, q[i]);   
    $display(tag);
endfunction