Open huettern opened 3 years ago
Thanks for the issue. I'll try digging into it over the weekend. The assertion shouldn't trigger, maybe we need to re-investigate the pre-fetching policy a bit further. I'll keep you posted.
Thanks Noah for the report and for including a binary. I looked into it and as far as I understand, the problem is that the instructions triggering these assertions come from the bootrom, which is set to be non-cacheable. They bypass the cache and the ready signal is only asserted for one cycle while Snitch has to wait for an outstanding load.
So either we change the assertion to not check non-cacheable instructions, but then we have no guarantee that they will always be stable. Or we change the bypass logic to keep the ready and the instruction stable.
Of course @SamuelRiedel is right! At first glance it seems that this is actually a bit more problematic to handle than I would wish for.
What's your take on this @noah95 @SamuelRiedel?
Thank you for investigating this. Since I'm not familiar with the instruction fetch and cache at all I can't contribute to the discussion, sorry. But let me know if I can help testing any fixes.
After the change of @SamuelRiedel in pulp-platform/snitch#69, i get assertion failures:
Can you reproduce this using the attached binary? Is it a concern?
ssr_intrinsic.tar.gz