system verilog 编写随机约束

1.  产生随机数

(1)系统函数$urandom()或者std::urandom();

(2)系统函数$urandom_range(a,b)或者std::urandom_range(a,b);

(3)randcase,随时可使用。

randcase
    1 : rand_data = $urandom_range(0,10);
    2 : rand_data = $urandom_range(20,30);
    3 : rand_data = $urandom_range(30,40);
    1 : rand_data = $urandom_range(40,50);
    1 : rand_data = $urandom_range(50,60);
endcase

2. constraint 

在class内部定义、编写。

constrain para_cons{

    cfg_cons0==128;

    cfg_cons1 inside {1,3,5,7};

    cfg_cons2 inside {[10:20],[30:40],50,60,70};

    ((cfg_cons3==1) && (cfg_cons4==0)) -> (cfg_cons5==2);

    cfg_cons6<=cfg_cons7;

    cfg_cons8%2==0;

    ((cfg_cons9>=24) && (cfg_cons9<=72)) -> (cfg_cons10==0);

    ((cfg_cons9>=73) && (cfg_cons9<=144
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值