Reply To: Scoreboard Push Index Not In Range Error
Why OSVVM™? › Forums › OSVVM › Scoreboard Push Index Not In Range Error › Reply To: Scoreboard Push Index Not In Range Error
Hi Minteng,
When an ID has a value of -2**31 (-2147483648), it has not been initialized yet.
OSVVM VC, such as AxiStream, initialize the TransRec.BurstFifo signal at time 0 ns delta cycle 1, so it is not valid until time 0 ns delta cycle 2.
Are you working with an OSVVM VC or one of your own? If it is an OSVVM VC, time is either 0 ns or the VC does not support bursting and has not initialized the TransRec.BurstFifo as a result – (I just looked at the OSVVM UART which does not support bursting yet, but it seems to initialize BurstFifo anyway – a burst transaction can send many single word transfers on an interface).
If it is one of your own VC and it supports Burst operations, then TransRec.BurstFifo needs to be initialized at time 0 – preferably as soon as possible. See the OSVVM AxiStream transmitter for an example.
If time is actually 0 ns, then your statement,
wait until RST_N = '1' ;
seems like it is intended to find the end of reset – which should be well after time 0 ns.
My guess is that it is finding an X to 1 transition at time 0 ns.
The following should work. The now > 0 ns excludes the case where RST_N is initialized to 0, and is changed to a 1 at time 0 (which would not allow reset to happen).
wait until rising_edge(RST_N) and now > 0 ns ; -- find reset changing from active to inactive
Best Regards,
Jim