There are two fields
cmd = {A, B, C, D}
size = {size_8, size_16, size_32, size_64}
The constraints are as follows
cmd rsize
--------------------
A size_8/size_16/size_32/size_64 (Any size)
B size_64
C size_8/size_16/size_32/size_64 (Any size)
D size_8/size_16/size_32/size_64 (Any size)
The expectation is to control both cmd and rsize through distribution of weights.
constraint cmd_const {
cmd dist {
A := weight_A
...
}
size dist {
size_8 := weight_size_8
...
}
Now, if below constraint is added,
constraint {
(cmd == B) -> (size == size_64)
}
As I understand, this leads to having the size as “size_64” only for “cmd_B” and not for others, because of the bi-directional nature of the implication
How can we add a constraint such that we can get other legal combinations of {cmd_A, size_64}, [cmd_C, size_64} etc…
}
In reply to Chinky:
The implication operator is not “bidirectional” in the sense that the implication is still satified when size == size_64 and cmd != B. The constraint is bidirectional in the choice of the random value for size affects the choice for cmd and vice versa. A better choice of words might be “simultaneously”.
What this means is if you pick a distribution for size, or constrain it such that choosing size==size_64 occurs only 1% of the time, there’s no way you could choose cmd==B more than 1% of the time as well.
In reply to dave_59:
Thanks Dave! I got what you are saying.
To be more clear, if the weights are such that
Weightage :
cmd size
------------------------------
cmd_B =90% size_64 == 10%
cmd_A =10% size_others = 90%
The combinations can be
{cmd_B, size_64} <= 10% of total weight,
But also, since the cmd_A is only chosen 10% of the time,
{cmd_A, size_64/size_others} ~= 10% of total weight.
Therefore, does this mean the above combination of legal values will happen almost in equal numbers . i.e 50% of the total number of legal combinations.
In reply to Chinky:
The LRM does not spell out how competing distribution play out, but the resulting probability will come out around 50/50. cmd_B comes out slightly less because there are few valid solutions available.