constraint c_order{solve standard before param;}
constraint c_standard{ soft standard dist{'b1 :/ 0, 'b0 :/ 1};}
constraint c_param{standard == 0 && field == 0 -> soft param inside{128,164,384,521,4096};
standard == 1 && field == 0 -> soft param inside{192,224,256,521};
这个是约束的代码。我在case部分即使给定了standard = 0和field == 0,
repeat(100) begin
`uvm_do_on_with(tr, p_sequencer.v_sqr, {tr.asym_field == 0;
tr.asym_standard == 'b0});
param并不会从{128,164,384,521,4096}里面选取,而且有时候还会报错bus error和段错误 |