Closed ShraddhaDevaiya closed 4 years ago
Hi @ShraddhaDevaiya, You'll need to make two changes to make this work:
Add a constraint on the size of the list
Randomizing a rand_list_t just randomizes the elements already in the list. In your case, there are no elements. Your example should work when written as follows:
import vsc
@vsc.randobj
class my_s(object):
def __init__(self):
super().__init__()
self.num_of_nested_loop = vsc.rand_bit_t(8)
self.loop_init_val = vsc.randsz_list_t(vsc.uint8_t())
@vsc.constraint
def ab_con(self):
self.num_of_nested_loop.inside(vsc.rangelist(1,2))
self.loop_init_val.size.inside(vsc.rangelist(1,2))
self.loop_init_val.size == self.num_of_nested_loop;
item = my_s()
for i in range(5):
item.randomize()
print("A = ",item.num_of_nested_loop,", B = ",item.loop_init_val)
Best Regards, Matthew
Yeah it is working this way. Thanks for helping !
Regards, Shraddha Devaiya.
Hi @mballance , One more issue I am facing in this case is like, it is iterating or randomizing every time with fix numbers. Like following is the code :
import vsc
@vsc.randobj
class my_s(object):
def __init__(self):
super().__init__()
self.num_of_nested_loop = vsc.rand_bit_t(8)
self.loop_init_val = vsc.randsz_list_t(vsc.uint8_t())
@vsc.constraint
def ab_con(self):
self.num_of_nested_loop.inside(vsc.rangelist(1,2))
self.loop_init_val.size.inside(vsc.rangelist(1,2))
self.loop_init_val.size == self.num_of_nested_loop
item = my_s()
for i in range(3):
item.randomize()
print("A = ",item.num_of_nested_loop,", B = ",item.loop_init_val)
So, for this we should get 3 prints , but every time it is giving an output like this for any value of range() :
A = 1 , B = [100]
A = 2 , B = [126, 210]
A = 1 , B = [184]
A = 1 , B = [204]
A = 2 , B = [7, 189]
A = 1 , B = [6]
A = 2 , B = [33, 71]
A = 1 , B = [219]
A = 2 , B = [61, 59]
A = 1 , B = [39]
A = 1 , B = [129]
A = 1 , B = [208]
A = 1 , B = [164]
Can you please help in this ?
Thanks & Regards, Shraddha Devaiya.
Hi @mballance , I was trying this code, but it is giving an error for constraint failure.
and this is giving an error like following :
I think for this we need solve before constraint . Can you please take a look into it?