[libre-riscv-dev] Scoreboards

Luke Kenneth Casson Leighton lkcl at lkcl.net
Sat May 18 21:22:21 BST 2019


Hi Samuel I had a bit of a combined "argh" and epiphany moment, having
remembered that Mitch said that the 6600 uses hi *and* lo clock edges.

The FUREGS Dependency Cell which is an SR latch plus a 3 in on S and 2 in
on R, where CLOCK is one of the inputs on each, works because and only
because the CLOCK will disable alteration of the latch.

On the src1 and src2 latche this allows the GOREAD signal to make a
conditional query of the state of the latch for a brief window of time
before CLOCK goes HI and the latch is CLEARED.

However in the same cell there is a second AND gate that has the same reg
unary line going into it that also went into SETTING the latch.

This is extremely clever, as it is dual purpose.

It works in conjunction with the FU-FU cells (which use the same clock
trick above).

When ISSUE is set, the RegDep cell captures the src1 src2 and dest regs
somewhere in the row (only 1 of each because it's unary) The AND gate sends
signals to the FUFU Cells at tge same time, to the entire row of listening
FUFU cells, which ALSO have ISSUE set.

Some of those cells will have "read and/or write pending" set.

The FUFU Dep Matrix does not need to know what the Reg#s actually are, all
it needs to capture is that in the case of reads, one other FU is going to
produce its results that it can read, and in the case of writes, one OR
MORE FUs have expressed an interest in RECEIVING that result.

The actual REG#s are captured in unary in the FUREGs Matrix (aka Q Table if
you want to do it in binary).

What has stopped everything that I have been trying to do from working was,
I forgot to simulate HI and LO clock cycles.

Again it is a 3 phase process:
Issue Hi, GORD Low
Issue Low, GORD Hi
Both Low.

Hold can occur anywhere in between on those.  ie there can be multiple
clock cycles in between transitions.

In the original, there are 4 phases, possibly more, due to CLK HI or LOW.

I believe it is possible to get away with only 3.

I will do a FSM tomorrow.

Yes basically, both Q and FUFU are definitely needed.

L.


-- 
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68


More information about the libre-riscv-dev mailing list