[libre-riscv-dev] multi-in. multi-out pipeline
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Wed Mar 27 21:51:26 GMT 2019
https://git.libre-riscv.org/?p=ieee754fpu.git;a=blob;f=src/add/test_inout_mux_pipe.py;h=9e2b102625a778e953324c554d4d014d829daed0;hb=HEAD#l251
ok! this is a 4-in mux, 2 passthrough, 4-fanout pipeline, where the
fan-in and fan-out are combinatorial and the passthrough stages in the
middle are clock-sync'd.
this basically constitutes the bedrock of the "Concurrent Computation
Unit" that was mentioned a few weeks ago.
* the 4-in mux allows 4 sets of input operands (Reservation Stations)
to wait for the pipeline to be ready. the mux ID goes into the pipe
as part of the data
* the 2 sync'd stages are where the IEEE754 FPU would go. mux ID gets
passed through
* the 4-fanout receives the data and the mux id, and fans out the
result to the correctly-matching Reservation Station.
it was quite straightforward to do, by combining the in-mux unit test
with the out-mux unit test. the data is sent in "priority" order
(because that's the input arbiter currently available), and correctly
re-assembles out the other side.
progress!
l.
More information about the libre-riscv-dev
mailing list