[libre-riscv-dev] [Bug 318] fix LDSTCompUnit

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Wed May 20 04:17:03 BST 2020


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

--- Comment #17 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Cesar Strauss from comment #16)
> I'll now proceed to improve the unit test for LDSTCompUnit.
> 
> I'll take into account your several ideas in comment #11.
> 
> Some of my own ideas are:
> 
> 1) The test driver should only present data during a single cycle,
> coincident with the activation of "go". This detects data being latched at
> the wrong time.

oh yeh, really good point.

> 
> 2) Add some behavioral assertions.
> For instance, busy_o must rise if, and only if, issue_i was active on the
> previous clock.
> Likewise "rel" signals must go low if, and only if, the corresponding "go"
> was active on the previous clock.
> And so on.

i believe these kinds of things are what Formal Proofs are for.  in particular,
when you use Past() to assert things from previous cycles.

> There could be a simulation "process" monitoring these kind of conditions.
> Or, using nMigen assertions, and/or formal verification. I must find out
> more about this.

bug 316, look up the formal_bperm.py code.  it's really well documented.

> I still need to study the interface and functionality of the L0CacheBuffer.

i tried two LDs in the score6600 code - they failed.  the first place to check
is the [prototype] L0CacheBuffer, with a twin-process.

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


More information about the libre-riscv-dev mailing list