[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