From 1dfc07d708148e84588301ddd883a11764c6fce0 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Fri, 22 Mar 2019 15:14:13 +0000 Subject: [PATCH] update docstrings on Pipeline --- src/add/example_buf_pipe.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/add/example_buf_pipe.py b/src/add/example_buf_pipe.py index 52a0093e..808d88e5 100644 --- a/src/add/example_buf_pipe.py +++ b/src/add/example_buf_pipe.py @@ -448,15 +448,26 @@ class ExampleBufPipe(BufferedPipeline): class Pipeline(PipelineBase): """ A simple pipeline stage with single-clock synchronisation - and two-way valid/ready synchronised signalling. Note that - a stall in one stage will result in the entire pipeline chain - stalling. + and two-way valid/ready synchronised signalling. - Also that the valid/ready signalling does NOT travel with the - data: a long pipeline chain will lengthen propagation delays. + Note that a stall in one stage will result in the entire pipeline + chain stalling. + + Also that unlike BufferedPipeline, the valid/ready signalling does NOT + travel synchronously with the data: the valid/ready signalling + combines in a *combinatorial* fashion. Therefore, a long pipeline + chain will lengthen propagation delays. Argument: stage. see Stage API, above + stage-1 p.i_valid >>in stage n.o_valid out>> stage+1 + stage-1 p.o_ready <>in stage n.o_data out>> stage+1 + | | + r_data result + | | + +--process ->-+ + Attributes: ----------- p.i_data : StageInput, shaped according to ispec @@ -464,9 +475,12 @@ class Pipeline(PipelineBase): p.o_data : StageOutput, shaped according to ospec The pipeline output r_data : input_shape according to ispec - A temporary (buffered) copy of a prior (valid) input + A temporary (buffered) copy of a prior (valid) input. + This is HELD if the output is not ready. It is updated + SYNCHRONOUSLY. result: output_shape according to ospec - The output of the combinatorial logic + The output of the combinatorial logic. it is updated + COMBINATORIALLY (no clock dependence). """ def __init__(self, stage): -- 2.30.2