X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fnmutil%2Fsinglepipe.py;h=e109900dc876faccf3040a745f45a5182f696321;hb=d18d6853dd8a94fd1be4cb52393c48091ebca655;hp=3a04fbf9bcaf6947905df9d7e36d345229392ee7;hpb=b9ac5a5e51f895091f8d0109571976b3a241f4ae;p=ieee754fpu.git diff --git a/src/nmutil/singlepipe.py b/src/nmutil/singlepipe.py index 3a04fbf9..e109900d 100644 --- a/src/nmutil/singlepipe.py +++ b/src/nmutil/singlepipe.py @@ -4,7 +4,16 @@ * http://bugs.libre-riscv.org/show_bug.cgi?id=64 * http://bugs.libre-riscv.org/show_bug.cgi?id=57 - Important: see Stage API (stageapi.py) in combination with below + Important: see Stage API (stageapi.py) and IO Control API + (iocontrol.py) in combination with below. This module + "combines" the Stage API with the IO Control API to create + the Pipeline API. + + The one critically important key difference between StageAPI and + PipelineAPI: + + * StageAPI: combinatorial (NO REGISTERS / LATCHES PERMITTED) + * PipelineAPI: synchronous registers / latches get added here RecordBasedStage: ---------------- @@ -461,7 +470,15 @@ class MaskNoDelayCancellable(ControlBase): class MaskCancellable(ControlBase): """ Mask-activated Cancellable pipeline - Argument: stage. see Stage API above + Arguments: + + * stage. see Stage API above + * maskwid - sets up cancellation capability (mask and stop). + * in_multi + * stage_ctl + * dynamic - allows switching from sync to combinatorial (passthrough) + USE WITH CARE. will need the entire pipe to be quiescent + before switching, otherwise data WILL be destroyed. stage-1 p.valid_i >>in stage n.valid_o out>> stage+1 stage-1 p.ready_o <