[Libre-soc-bugs] [Bug 742] MultiCompUnit wrmask relies on sync ok

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sat Nov 6 13:14:05 GMT 2021


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

--- Comment #2 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
http://lists.libre-soc.org/pipermail/libre-soc-dev/2021-November/004086.html

https://git.libre-soc.org/?p=soc.git;a=commitdiff;h=809cf2faa4450901779045cfaa89e69f70ed9f42

(In reply to Cesar Strauss from comment #1)
> On https://bugs.libre-soc.org/show_bug.cgi?id=336#c75, I said:
> 
> "It seems that MultiCompUnit depends on the ALU *.ok output fields being
> held valid long enough into the write phase. In the test ALU, I tried
> holding *.ok valid just for the duration of the ALU valid_o, and it didn't
> work. I ended up instead directly decoding the input operation,
> combinatorially, into the *.ok, so they do stay valid during the entire
> instruction cycle."
> 
> Maybe related?

sounds right.

the issue is that wrmask goes directly into the write release, and it should
have triggered the relevant latches at (and only at) the time that the ok
occurs, which, of course, is when the n.i_valid occurs.

that the ok has to be set and stay set *after* i_valid is a serious problem

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


More information about the libre-soc-bugs mailing list