IC学习笔记:SystemVerilog队列及数组方法

队列和数组是SystemVerilog中常用的数据结构,它们可以用来存储和操作一组数据。本文将介绍SystemVerilog中队列和数组的常用方法。

1. 队列方法

        队列是一种先进先出(FIFO)的数据结构,它可以用来存储一组有序的数据。SystemVerilog中的队列有以下常用方法:

1.1 push_front(value)

        在队列的前面插入一个元素。

1.2 push_back(value)

        在队列的后面插入一个元素。

1.3 pop_front()

        从队列的前面删除一个元素。

1.4 pop_back()

        从队列的后面删除一个元素。

1.5 size()

        返回队列中元素的个数。

1.6 empty()

        判断队列是否为空。

1.7 clear()

        清空队列中的所有元素。

下面是一个使用队列的例子:

queue #(int) my_queue; 
 
initial begin 
    my_queue.push_back(1); 
    my_queue.push_back(2); 
    my_queue.push_back(3); 
    $display("size=%0d", my_queue.size()); 
    while (!my_queue.empty()) begin 
        $display("front=%0d, back=%0d", my_queue.front(), my_queue.back()); 
        my_queue.pop_front(); 
    end 
end 
输出结果为:
size=3 
front=1, back=3 
front=2, back=3 
front=3, back=3 
 

2. 数组方法

        数组是一种用来存储一组有序数据的数据结构,它可以用来表示向量、矩阵等数据类型。SystemVerilog中的数组有以下常用方法:

2.1 append(value)

        在数组的末尾添加一个元素。

2.2 delete(index)

        删除数组中指定位置的元素。

2.3 insert(index, value)

        在数组中指定位置插入一个元素。

2.4 size()

        返回数组中元素的个数。

2.5 empty()

        判断数组是否为空。

2.6 clear()

        清空数组中的所有元素。

下面是一个使用数组的例子:

verilog 
int my_array[]; 
 
initial begin 
    my_array.append(1); 
    my_array.append(2); 
    my_array.append(3); 
    $display("size=%0d", my_array.size()); 
    for (int i = 0; i < my_array.size(); i++) begin 
        $display("my_array[%0d]=%0d", i, my_array[i]); 
    end 
    my_array.delete(1); 
    my_array.insert(1, 4); 
    $display("size=%0d", my_array.size()); 
    for (int i = 0; i < my_array.size(); i++) begin 
        $display("my_array[%0d]=%0d", i, my_array[i]); 
    end 
end 

输出结果为:

size=3 
my_array[0]=1 
my_array[1]=2 
my_array[2]=3 
size=3 
my_array[0]=1 
my_array[1]=4 
my_array[2]=3 
以上就是SystemVerilog中队列和数组的常用方法。

你可能感兴趣的:(verilog,FPGA,fpga开发)