每天实践SV:数据类型

初始化并遍历多维数组

module data_type();
    int arr[3][2];  //int arr[0 : 2][0 : 1]
    initial begin
        arr = '{'{1, 2}, '{3, 4}, '{5, 6}};
        foreach(arr[i,j])
            $display("arr[%0d][%0d] = %0d", i, j, arr[i][j]);
        $finish;
    end
endmodule

在这里插入图片描述

数组的索引顺序

在这里插入图片描述

module data_type();
    bit [3 : 0] [4 : 0] arr [1 : 0][2 : 0];
    initial begin
        foreach(arr[i, j, k, l])
            $display("arr[%0d][%0d][%0d][%0d]", i, j, k, l);
        $finish;
    end
endmodule

在这里插入图片描述

================================ 2022.03.25

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

队列

module dinamic();
    bit [31 : 0] arr [];
    int j = 4,
    q[$] = {1, 2, 3},
    q1[$] = {7, 8};

    initial begin
	//arr = '{1, 2, 3, 4};
        //arr = new[5];
        //foreach(arr[i]) arr[i] = i;
        //foreach(arr[i]) $display(arr[i]);

        q.insert(1, j);
        foreach(q[i]) $write("%0d", q[i]);
        $display();
        q.insert(2, q1);
        foreach(q[i]) $write("%0d", q[i]);
        
        $display;
        q.push_front(0);
        q.push_back(9);
        foreach(q[i]) $write("%0d", q[i]);
        
        $display;
        q.pop_front();
        q.pop_back();
        foreach(q[i]) $write("%0d", q[i]);
        
        q.delete();
    
    end
endmodule

在这里插入图片描述
insert在前;可以插入队列;front在高位;

关联数组

在这里插入图片描述

关联数组只能用foreach,因为是稀疏分布的。

module associative_array();
    int switch[string];
    initial begin
        switch["a"] = 1;
        switch["b"] = 2;
    foreach(switch[s])
        $display("switch[%s] = %0d", s, switch[s]);
    end

endmodule

在这里插入图片描述

=====================2022.03.26

数组的方法

数组缩减方法
数组定位方法
数组排序方法

module arr_method();
    bit arr [10];
    int total;
    int q[4] = '{1, 1, 2, 3};
    
    int tmin[$];
    int tmax[$];
    int tuni[$];
    int tfind[$];
    initial begin
        foreach(arr[i]) arr[i] = i;
        $display("%0d", arr.sum);
        $display("%0d", arr.sum + 32'd0);
        total = arr.sum;
        $display("%0d", total);
        

        tmin = q.min();
        foreach(tmin[i]) $write("%0d", tmin[i]);
        $display();

        tmax = q.max();
        foreach(tmax[i]) $write("%0d", tmax[i]);
        $display();

        tuni = q.unique();
        foreach(tuni[i]) $write("%0d", tuni[i]);
        $display();

        tfind = q.find() with (item > 1);
        foreach(tfind[i]) $write("%0d", tfind[i]);
        $display();

        q.sort();
        foreach(q[i]) $write("%0d", q[i]);
        $display();

        q.rsort();
        foreach(q[i]) $write("%0d", q[i]);
        $display();

        q.reverse();
        foreach(q[i]) $write("%0d", q[i]);
        $display();

        q.shuffle();
        foreach(q[i]) $write("%0d", q[i]);
        $display();
    end
endmodule

在这里插入图片描述

数组缩减方法的返回值类型为元素类型;定位方法返回值为队列;数组排序方法改变原数组,shuffle和reverse不能有with,他们是对整个数组进行操作。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值