I have two coverpoints (x_cp, y_cp), 8 bit each, and I would like to do cross between the two when only few bits (1-3 bits) are relevant for each value in x_cp and I would like to define bins only on those possible options.
assume x_cp=8'd0, only the bits 1,3 are relevant in y_cp, i.e. I would like to have bin for each possible combination:
- (x_cp=8'd0, y_cp=8'b00000000)
- (x_cp=8'd0, y_cp=8'b00000010)
- (x_cp=8'd0, y_cp=8'b00001000)
- (x_cp=8'd0, y_cp=8'b00001010)
assume x_cp=8'd13, only the bit 5 is relevant in y_cp, i.e. I would like to have bin for each possible combination:
- (x_cp=8'd13, y_cp=8'b00000000)
- (x_cp=8'd13, y_cp=8'b00100000)
and so on...
I would like to have bins only on the above combinations (to ignore or define illegal for the other combinations).
If I have a file\array that indicates for each value in x_cp, what are the possible bits in y_p, how can I do it smartly (don't want to encode 2^8 rows for each value of x_cp)?
I've seen examples about something that is called CrossQueueType that uses function that define the ignore_bins, but it was a very simple situation (for example all values that satisfy x_cp < y_cp CrossQueueType example).
Help would be truly appreciated!