[libre-riscv-dev] buffered pipeline

Jacob Lifshay programmerjake at gmail.com
Wed Mar 20 07:34:17 GMT 2019


I'm in the midst of converting the pipeline stages I wrote to using Record.
I'm redesigning the pipeline stage classes so we have the following classes:

CombStage:
0-clock-cycle delay
combinatorial logic
logic in either of process callback passed into constructor or overridden
process method

RegStage:
1-clock-cycle delay
valid output comes from flip-flop

ReadyIsolatorStage:
0-clock-cycle delay
ready output comes from flip-flop

planning on adding:
stage that has multiple input ports & 1 output port that waits for all
inputs to be valid at same time then transfers all inputs to output:
SynchronousFanIn

stage that has multiple input ports & 1 output port that waits for any
input to valid then transfers inputs one at a time to output

stage that has 1 input port and multiple output ports that waits for all
outputs to be ready then transfers to all outputs simultaneously:
SynchronousFanOut

those classes should make it much easier to build a pipeline.

considering adding separate cancel inputs to classes that can store data.

currently working on logic in ReadyIsolatorStage

Jacob Lifshay


More information about the libre-riscv-dev mailing list