|
Hi,
This question relates to SV coverage sequences. I’m
encountering a bad pointer access error when I try to compare for coverage
sequences that are long and could potentially have a recursive effect. For example,
the following sequence causes a bad pointer access.
bins usb_downstream_host_sof
= (
DNS_HOST_SOF => PACKET_X [*0:1] =>
DNS_HOST_SOF
=> PACKET_X [*0:1] =>
DNS_HOST_SOF => PACKET_X [*0:1] =>
DNS_HOST_SOF => PACKET_X [*0:1] =>
DNS_HOST_SOF
=> PACKET_X [*0:1] =>
DNS_HOST_SOF => PACKET_X [*0:1] =>
DNS_HOST_SOF => PACKET_X [*0:1] =>
DNS_HOST_SOF
=> PACKET_X [*0:1]
);
The above sequence looks for SOF, followed by PACKET_X zero
or one time (i.e. it’s optional), followed by SOF, etc. The entire sequence
looks for 8 SOFs and 8 PACKET_Xs. The recursive aspect of this sequence is that
after the first SOF, subsequent finding of another SOF will start another
thread of sequence comparison while the first sequence is confirming a match
for the second SOF. This process could create multiple parallel sequence
comparisons for the same bin.
The simulation memory usage appears to be reaching 3.2G or
higher just before the bad pointer access occurs. Is this an inherent limit of the
SV coverage sequences scheme? Has anyone encountered a similar problem in the
past and can suggest ways to resolve or work around this?
Thank you for your time and help!
Ethan
|