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

标题: 二维数组怎么写求和约束 [打印本页]

作者: Mr.semiconduct    时间: 2023-10-13 16:12
标题: 二维数组怎么写求和约束
请问怎么给二维数组写求和约束?我这样写报错sum with cannot be resolved
module demo;
class test;
rand int rate[4][40];
int a,b;
constraint rate_cfg {
foreach(rate[i,j]) {  
  rate[i][j] dist {10:=1,25:=1,40:=1,50:=2,100:=1,200:=1,400:=1};
  rate[i][0] == 50;
  rate[i][39] == 50;

  rate[i][2] > 0;
  rate[i][2] < 39;
  rate[i][j] > 0;
  rate[i][j] <= 50;
  a == rate[i][2].sum with(item.index);
  b == rate[i][j].sum with(int'(item.index));
  a+b <= 4000;
}
}
endclass
endmodule


作者: qsh123_123    时间: 2023-10-13 20:38
我就一个问题:谁教你可以在constraint的{}里面调用function的。。。
作者: 飞翔的马甲    时间: 2023-11-6 14:29
int a, b;改为rand int a,b;试试
另外,你的这个约束太复杂了
作者: xiaofei_heu    时间: 2023-11-6 17:42


   
飞翔的马甲 发表于 2023-11-6 14:29
int a, b;改为rand int a,b;试试
另外,你的这个约束太复杂了


确实够复杂的,不知改了后效果如何?

作者: 飞翔的马甲    时间: 2023-11-7 10:54


   
xiaofei_heu 发表于 2023-11-6 17:42
确实够复杂的,不知改了后效果如何?


因为你原来的a和b是非rand类型的,求解肯定失败的

作者: eaglezhang01    时间: 2023-11-16 14:03


   
qsh123_123 发表于 2023-10-13 20:38
我就一个问题:谁教你可以在constraint的{}里面调用function的。。。


约束里用内置函数或者系统函数这不是很常见的用法吗
作者: 炒鸡屈服者    时间: 2023-11-16 18:26


   
qsh123_123 发表于 2023-10-13 20:38
我就一个问题:谁教你可以在constraint的{}里面调用function的。。。


系统函数就能用啊size()

作者: 新嘴小王安子    时间: 2023-11-29 12:12
需要分两次循环,一个foreach不太合适
作者: 年轻的韭菜    时间: 2023-11-29 17:30


   
qsh123_123 发表于 2023-10-13 20:38
我就一个问题:谁教你可以在constraint的{}里面调用function的。。。


可以调function的,仿真器VCS solver 对包含 function 约束的求解_constraints inconsistency failure-CSDN博客





欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/) Powered by Discuz! X3.5