Search the Community
Showing results for tags 'constraints'.
-
I am trying to write constrain for seq_item and sequence, I am describing it as follows, kindly please help me to write a code for this DUT has req interface , which has multiple fields and one of them is ID[7:0] field which is correct to variable in seq item class. DUT also has response interface ; response interface gets response for req and also as associated ID sent during request time. DUT can’t accept request if req with same ID value is already in progress inside DUT. I am looking to write logic in Seq item /sequence to put constraints to avoid generation of requests with same ID values when response is not received for previous ID value. Can I please have your help on this..
-
Yesterday, I learned that when randomize is called, all active constraints in the scope must be met ... even if you are passing a specific member as an argument to the randomize call. i.e. If you try to randomize a specific class member by passing it to the randomize call, like this: randomize(var2), all constraints in the scope of the randomize must still be met, even if they have nothing to do with the member being randomized. ***Someone please jump in if I phrased that poorly or am incorrect. In the below example there are two variables and a constraint on one. Uncommenting the line that causes the constraint on var1 to be violated will cause the later call to randomize to fail, even though it is passed an argument (var2) that has nothing to do with var1. class showit; rand int var1; rand int var2; constraint c_1 { var1<100; } endclass ////////////////////////////////////// module top; showit showit; initial begin showit=new(); //showit.var1=101; UNCOMMENT ME, PLEASE FOR FAIL as_myassert : assert(showit.randomize(var2)) begin $display("\n********** Victory : var2=%0d var1=%0d \n",showit.var2, showit.var1); end else begin $display("\n********** Defeat : var2=%0d var1=%0d \n",showit.var2, showit.var1); end end endmodule : top Pass result: ********** Victory : var2=-1424717967 var1=0 Fail result: ********** Defeat : var2=0 var1=101 I now understand randomize better. I had thought that only the constraints that pertained to the items being randomized were relevant.
- 3 replies
-
- randomize
- constraint
-
(and 2 more)
Tagged with: