[Libre-soc-bugs] [Bug 449] FU unit tests checking output one cycle too late
bugzilla-daemon at libre-soc.org
bugzilla-daemon at libre-soc.org
Wed Aug 5 18:16:26 BST 2020
https://bugs.libre-soc.org/show_bug.cgi?id=449
--- Comment #5 from Cole Poirier <colepoirier at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #4)
> (In reply to Cole Poirier from comment #3)
>
> > Do you think in the future Managers for ready/valid signalling should be
> > added into the unit test?
>
> they already are: they're called compunit tests, and they're in
> soc/fu/compunit/test.
Sorry I meant the test_pipe_caller tests because you said "with each
test_pipe_caller.py being hand-written ready/valid signalling,
it's kiinda "ok" that their ready/valid signalling is "borked" (or in
the case of the single-stage ones such as ALU and Logical, *completely*
borked)."
But clearly I missed this: "as long as the test_*_compunit.py functions
correctly it's fine."
And your below comments further elucidate this.
>
> > If so what is blocking this?
>
> nothing because they already exist.
>
> > Do the Managers need to be formally verified first
>
> soc/fu/compunits/formal/proof_fu.py
>
> it needs to be completed.
>
> > so we don't introduce an unrelated point of
> > failure into the DIV and MUL unit tests?
>
> indeed. however given that there are 8+ pipelines using MultiCompUnit, and
> after 4+ months of work by both myself, cesar and michael we are
> reeeeasonably confident it's stable.
>
> the formal proof proof_fu.py - if written correctly - gives us 100%
> confidence rather than "empirical evidential" confidence.
Sorry, I'm not clear. Does "soc/fu/compunits/formal/proof_fu.py need to be
completed."? Or are you saying that this has been done by you, michael, and
cesar and you are reasonable confident it's stable?
> > > as long as the test_*_compunit.py functions correctly it's fine.
> > >
> > > this is precisely why we have unit tests at every integration level.
> > >
> > > i think we're good on this one.
> >
> > Or is it that these unit tests will be integrated into future higher-level
> > unit tests?
>
> absolutely not. they are designed specifically to be absolutely 100%
> separate and distinct.
>
> i've said this before a number of times:
You have, but this level of careful design it unfortunately unusual, so in
order for my brain to grok this it needs repeats exposure.
> 1) test_pipe_caller.py tests the functionality of the *pipeline*
>
> 2) test_*_compunit tests the *MANAGEMENT* of the pipeline
>
> 3) test_core.py tests the integration of pipelines with *register* files
>
> 4) test_issuer.py tests the allocation of instructions *to* pipelines.
So thank you for elucidating this very well-designed api and test architecture
once again :)
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the libre-soc-bugs
mailing list