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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1772|回复: 3

[求助] system verilog约束问题

[复制链接]
发表于 2019-4-29 17:00:25 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 静心聆听 于 2019-4-29 17:13 编辑

如何实现两个数同在一个数组或者两个数都不在数组内。
int fib = {12,34,45,47,78,96,104};
rand int number[];

constraint number_cn{
    foreach(number[i ])
        number[i ]  inside fib;
    foreach(number[i ])
        foreach(number[j] )
            if(i != j)
                number[i ]   != number[j];
    number.size() inside {[1:5]};
}

如何实现数组number中出现:12与34都存在number或者12与34都不在number里?
发表于 2019-4-30 09:53:14 | 显示全部楼层
class test;

bit [7:0] fib[7] = '{12,34,45,47,78,96,104};
rand bit [7:0] dt[2];
rand bit [7:0] number[];
rand bit in_or_not_in;
constraint number_cn{
    number.size() inside {[2:5]};
    unique {dt};
    foreach(dt[i])
        dt[i] inside {fib[0],fib[1]};//can change
    foreach(dt[i])
        if (in_or_not_in == 1)
            dt[i] inside {number};
        else
            !(dt[i] inside {number});
    in_or_not_in dist {1:=8,0:=2};
}



endclass

initial begin
    automatic test utest = new();
    for(int i=0;i<30;i++) begin
        void'(utest.randomize());
        $display("%0d,%p",utest.in_or_not_in,utest.number);
    end
end

endmodule
 楼主| 发表于 2019-4-30 10:53:35 | 显示全部楼层


A1985 发表于 2019-4-30 09:53
class test;

bit [7:0] fib[7] = '{12,34,45,47,78,96,104};


谢谢您的回复,但是这样的做,会出现number的size最小是2,而不是1了啊。
但这种方法确实比较巧妙。
大概这样就能满足number的个数可以为1或0的情况了吧
    foreach(dt)
        if (in_or_not_in == 1 && number.size() > 1)
            dt inside {number};
        else
            !(dt inside {number});

发表于 2019-4-30 11:46:13 | 显示全部楼层


静心聆听 发表于 2019-4-30 10:53
谢谢您的回复,但是这样的做,会出现number的size最小是2,而不是1了啊。
但这种方法确实比较巧妙。
大概 ...


其他的尺寸约束下就好了。。没啥难度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-13 21:20 , Processed in 0.018541 second(s), 7 queries , Gzip On, Redis On.

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