[libre-riscv-dev] [Bug 154] Cell for Dependency Matrices is needed

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Sun Jan 12 20:42:03 GMT 2020


http://bugs.libre-riscv.org/show_bug.cgi?id=154

--- Comment #1 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
from staf:

> Do you have reference to code for these dependency matrices ?
> Would be good if we could play around
> ourselves and come up with proposals.

yes, the code is here:
https://git.libre-riscv.org/?p=soc.git;a=tree;f=src/scoreboard

to provide some explanation:

* there are currently three separate dependency matrices: register-functionunit
(FU), FU-FU, and FU-Memory.
* SRLatch is the basic unit.
* unfortunately nmigen is (was?) so slow (simulation wise) i had to make
SRLatch a multi input multi output design
* therefore SRLatch takes a width parameter indicating *how many* SRLatches are
to be created
* therefore this same parameter is *also* passed to DependencyRow.
*  is where you get an actual 2D matrix.

early designs had SRLatch as a single entity, DependencyRow created N such
entities, FURegDepMatrix created M DependencyRows.

this was so painfully slow it was critical to optimise, hence the strange
design of SRLatch.

changes to an SRNand rather than an SRNor may require investigation of
inversion of the inputs (outputs?). i will be able to focus on this from the
23rd.

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


More information about the libre-riscv-dev mailing list