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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4750|回复: 6

[求助] SV约束inside问题

[复制链接]
发表于 2021-2-26 20:09:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
想问问大家一个问题,SV写约束时inside是在某一个集合范围内,有没有用inside方法约束不在某一个区域内呢?好像是



  1. (!inside)


复制代码

这样类似的。之前好像看过类似这种写法,现在记不清楚了。在queata上试了几种组合,有的报错,有的感觉结果都不对。大家有知道的吗?谢谢大家!
发表于 2021-2-26 20:29:19 | 显示全部楼层
rand integer a, b, c;
constraint c2 {a inside {b, c};}
发表于 2021-2-26 21:44:19 | 显示全部楼层
写了一个运行效率不高的demo,参考一下:
`timescale 1ns/1ns
program test;
   bit [7:0] arr [4];
   
   bit [7:0] val;
   
   bit [7:0] val_;

   initial begin
      arr = '{8'haa, 8'hbb, 8'hcc, 8'hdd};
      while (1) begin
         if (std::randomize(val_)) begin
             if (val_ inside arr) begin
                 continue;
             end else begin
                 val = val_;
                 break;
             end
         end else begin
             $display("randomize fails");
             $finish();
         end
      end
      $display("val = 0x%2h", val);
   end
endprogram: test
发表于 2021-3-1 11:26:19 | 显示全部楼层
借楼问个问题,inside里面的负值能取到吗?我inside约束随机到的好像都是>=0的值,请教大佬们???
如果能取到负值,求真实实践贴图结果,谢谢
发表于 2021-3-2 09:57:17 | 显示全部楼层
可以这样 :!(A inside {[0:5]});
在constraint中表示A不在0~5范围内
发表于 2023-5-31 09:55:47 | 显示全部楼层
请问,这个inside能否约束负值的问题解决了吗?求解答,谢谢
发表于 2024-2-8 19:32:20 | 显示全部楼层


zuiqiangzhe 发表于 2021-3-2 09:57
可以这样 :!(A inside {[0:5]});
在constraint中表示A不在0~5范围内


已验证,可以这样用,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-14 12:15 , Processed in 0.020638 second(s), 7 queries , Gzip On, Redis On.

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