From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
To: openpower-hdl-cores@mailinglist.openpowerfoundation.org
Cc: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
Subject: [libre-riscv-dev] microwatt feature request: "switch off all optimisations" mode
Date: Fri, 31 Jul 2020 15:40:52 +0100
Message-ID: <CAPweEDw+-AKRy9jB8Q6E-QiQ+OhM-BS4HizgAsh37buVd+Y0Gg@mail.gmail.com> (raw)
paul, benjamin, mikey: i have a huge favour to ask of you (or a "howto"
question), given that i never done VHDL programming before.
thank to florent of enjoy-digital's help, libresoc now has connectivity to
litex in simulation, just like in microwatt. in particular he added a
"Display" option on any wishbone activity requested by (either) core,
allowing me to see what is going on.
i was therefore looking to do cycle-accurate side by side comparisons, spot
the discrepancies, fix the bug and move on to the next one.
this technique has worked extremely well up to now by comparing against
qemu, and against our python simulator.
we would like to be able to add microwatt to that list.
the problem is that microwatt has branch prediction, L1 cacheing and
pipeline latency all of which mean that i am completely guessing about what
caused any given bus read/write.
any kind of side-by-side comparison of log files, looking for the "one
instruction that does something different/wrong" is out of the question.
... *unless*... there is a "mode" for microwatt that is effectively
equivalent to gdb single-step.
we need a way to stop microwatt from doing any kind of overlapping
instructions. this *may* be possible already through the JTAG/debug
interface, i do not know.
the alternative is some minor modifications that throw in a deliberate 10
to 20 cycle delay in the instruction issue phase. this would give ample
time to inspect the internal state (regfiles, PC, SPRs, etc) looking for
discrepancies when running the exact same binary.
what would you suggest here? how can we "single-step" microwatt? clearly
performance is not important: cycle-accurate comparisons is the goal.
with thanks, and understanding that you are busy people,
l.
--
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
next reply index
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-31 14:40 Luke Kenneth Casson Leighton [this message]
2020-08-01 13:55 ` Luke Kenneth Casson Leighton
2020-08-03 0:13 ` [libre-riscv-dev] [OpenPOWER-HDL-Cores] " Herrenschmidt, Benjamin
2020-08-03 1:00 ` [libre-riscv-dev] " Luke Kenneth Casson Leighton
2020-08-03 1:05 ` [libre-riscv-dev] [OpenPOWER-HDL-Cores] " Benjamin Herrenschmidt
2020-08-03 1:35 ` [libre-riscv-dev] " Luke Kenneth Casson Leighton
2020-08-03 1:39 ` [libre-riscv-dev] [OpenPOWER-HDL-Cores] " Herrenschmidt, Benjamin
2020-08-03 2:38 ` [libre-riscv-dev] " Luke Kenneth Casson Leighton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAPweEDw+-AKRy9jB8Q6E-QiQ+OhM-BS4HizgAsh37buVd+Y0Gg@mail.gmail.com \
--to=lkcl@lkcl.net \
--cc=libre-riscv-dev@lists.libre-riscv.org \
--cc=openpower-hdl-cores@mailinglist.openpowerfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Libre RISC-V Mailing list Archives (accessible via public-inbox)
Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev
Example config snippet for mirrors
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git