在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 783|回复: 13

[求助] 随机一个数组,只要有两个0出现,在第三个0出现前必须有个1

[复制链接]
发表于 2025-7-16 17:46:05 | 显示全部楼层
这种东西,AI不是更擅长么:class my_array;   rand bit [2:0] arr[];   int length;    function new(int len);     length = len;     arr = new[length];   endfunction    constraint value_range {     foreach(arr[i]) arr[i] inside {[0:5]};   }    // 不加复杂约束,后处理   function bit check_constraint();     int zero_idx[$];     foreach(arr[i]) if (arr[i] == 0) zero_idx.push_back(i);     for (int k = 2; k < zero_idx.size(); k++) begin       bit found = 0;       for (int j = zero_idx[k-1]+1; j < zero_idx[k]; j++)         if (arr[j] == 1) found = 1;       if (!found) return 0;     end     return 1;   endfunction    function void post_randomize();     while (!check_constraint()) void'(randomize());   endfunction endclass
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-22 06:41 , Processed in 0.047412 second(s), 4 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表