[libre-riscv-dev] [Bug 336] ALU CompUnit needs to recognise that RA (src1) can be zero

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun May 24 00:10:34 BST 2020


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

--- Comment #11 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
brilliant, just saw this, Cesar.  confirmed that it is functional.

commit 260625df9309f8f35541207cab431dd8dba90c5a
Author: Cesar Strauss <cestrauss at gmail.com>
Date:   Sat May 23 19:52:08 2020 -0300

    Add a few test cases with zero_a set, in combination with imm_ok


so the next one is: we need something that's a bit more sophisticated,
designed more along the lines of test_inout_mux_pipe.py:

https://git.libre-soc.org/?p=nmutil.git;a=blob;f=src/nmutil/test/test_inout_mux_pipe.py;h=03fddde0f7ab12ec9023fc57b913442ba42c120a;hb=HEAD#l52

not quite that sophisticated, but close.

basically, we need:

* one function (similar to TestInput.send) which takes care of *one*
  REQ_READ and GO_RD signalling bit.  it should monitor:
  self.rd.req[N], then set self.rd.go[N] for *one* cycle (one blank yield)
  then set it self.rd.go[N] back to zero and confirm (assert) that
  self.rd.req[N] has gone to zero

* another function (similar again to TestInput.rcv) which does the same
  thing for REQ_WRITE and GO_WRITE.

* another function - a very simple one - which sets issue_i
  for one cycle (yield in between), then waits for "self.busy" to drop to 0

we can make it more sophisticated as we go along.

it should be... only... about... 80 lines of code, at a guess.

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


More information about the libre-riscv-dev mailing list