Conversation
Extend `ibex_tracer` so you can select the output format. As well as the existing one it adds support for RVVI-TEXT, which is a new machine-readable format.
SamuelRiedel
left a comment
There was a problem hiding this comment.
Thanks for looking into this. I fully support using a standardized format, even if it's a very early-stage standard.
The implementation as it is already looks good to me. The linter has a few nits, and I also noticed that loads are currently reported on every memory transaction, so also on stores, but that is not an issue of your trace implementation, but of how we create the rvfi signal. I will push a fix shortly. This actually shows why such a format can be nice, because load information is also polluting the store instruction traces in the current trace, which I just never even noticed until now.
I will also check out the related issues. I see that this is still a draft with multiple TODO comments, but IMO we can also merge this sooner rather than later if the standardization takes a bit, and then update, for example, the memory transaction format once it's fixed.
|
This looks neat and easier to deal with than the current regex monstrosity that I'm using to examine the current trace format. |
|
After having tried to write a parser for this format, I think there are a few tweaks that could make it a lot easier to parse without hurting readability. I'll get back to you guys when it's (hopefully) updated. |
Extend
ibex_tracerso you can select the output format. As well as the existing one it adds support for RVVI-TEXT, which is a new machine-readable format.This is very drafty because RVVI-TEXT is still a work in progress - see the barrage of issues I opened. Example output:
I'm not sure why stores also report a load. That seems wrong. Also I don't think this will report interrupts correctly due to RVFI's weird
trap/intrsignals. I haven't tested it though.Related: #2334
@doddssynopsys you might be interested in this!