[Libre-soc-bugs] [Bug 419] MUL pipeline formal proof needed

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Aug 30 11:06:24 BST 2020


https://bugs.libre-soc.org/show_bug.cgi?id=419

--- Comment #16 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Samuel A. Falvo II from comment #15)
> (In reply to Luke Kenneth Casson Leighton from comment #13)
> > oink.
> 
> Fixed!
> 
> > xer_ov.ok and o.ok are crucial signals that tell the regfiles to actually
> > write the result.
> 
> Right.  That's what I thought, but wasn't 100% sure.

ok you implemented something slightly differently, checking the OE flag
(this is output_stage.py's job, which is not part of the chain).  we
chained these together:

        pipe1 = MulMainStage1(pspec)
        pipe2 = MulMainStage2(pspec)
        pipe3 = MulMainStage3(pspec)

where in fu/mul/pipeline.py you can see that OE checking is handled here:

        out = DivMulOutputStage(self.pspec)  # do CR, XER and out-invert etc.

so any Assertions involving OE would be erroneous.

the xer_ov.ok flag (and o.ok flag) are quite simple, they just tell the
Register Files, "results are available if you want them".

there does exist a Formal Correctness Proof for OutputStage, it does need
updating.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list