SystemVerilog生成随机矩阵

本文探讨如何利用SystemVerilog语言特性生成随机数矩阵,适用于硬件验证中的复杂场景模拟和测试向量生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SystemVerilog生成随机矩阵:

// 1.first part: a systemvrilog program block. (this part can be omitted)
class hello_str;
    string str = "Hello world";
endclass

class hello_martix;
    rand reg[(4+6):0] m[16][16];

    reg[10:0] col_sum[16];

    function void random_mat();
        assert(this.randomize() with{
            m[0].sum()<=128;
            m[1].sum()<=128;
            m[2].sum()<=128;
            m[3].sum()<=128;
            m[4].sum()<=128;
            m[5].sum()<=128;
            m[6].sum()<=128;
            m[7].sum()<=128;
            m[8].sum()<=128;
            m[9].sum()<=128;
            m[10].sum()<=128;
            m[11].sum()<=128;
            m[12].sum()<=128;
            m[13].sum()<=128;
            m[14].sum()<=128;            
            m[15].sum()<=128;

            (m[0][ 0]+m[1][ 0]+m[2][ 0]+m[3][ 0]+m[4][ 0]+m[5][ 0]+m[6][ 0]+m[7][ 0]+m[8][ 0]+m[9][ 0]+m[10][ 0]+m[11][ 0]+m[12][ 0]+m[13][ 0]+m[14][ 0]+m[15][ 0])<=128;
            (m[0][ 1]+m[1][ 1]+m[2][ 1]+m[3][ 1]+m[4][ 1]+m[5][ 1]+m[6][ 1]+m[7][ 1]+m[8][ 1]+m[9][ 1]+m[10][ 1]+m[11][ 1]+m[12][ 1]+m[13][ 1]+m[14][ 1]+m[15][ 1])<=128;
            (m[0][ 2]+m[1][ 2]+m[2][ 2]+m[3][ 2]+m[4][ 2]+m[5][ 2]+m[6][ 2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值