From 8d62e8206e286a18ec1677d403340bd0846d2341 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Mon, 29 Apr 2019 03:52:26 +0100 Subject: [PATCH] update comments --- src/add/iocontrol.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/add/iocontrol.py b/src/add/iocontrol.py index b3cdb3a3..d68f6da7 100644 --- a/src/add/iocontrol.py +++ b/src/add/iocontrol.py @@ -477,6 +477,11 @@ class ControlBase(StageHelper, Elaboratable): """ Common functions for Pipeline API. Note: a "pipeline stage" only exists (conceptually) when a ControlBase derivative is handed a Stage (combinatorial block) + + NOTE: ControlBase derives from StageHelper, making it accidentally + compliant with the Stage API. Using those functions directly + *BYPASSES* a ControlBase instance ready/valid signalling, which + clearly should not be done without a really, really good reason. """ def __init__(self, stage=None, in_multi=None, stage_ctl=False): """ Base class containing ready/valid/data to previous and next stages @@ -487,6 +492,7 @@ class ControlBase(StageHelper, Elaboratable): Except when calling Controlbase.connect(), user must also: * add data_i member to PrevControl (p) and * add data_o member to NextControl (n) + Calling ControlBase._new_data is a good way to do that. """ StageHelper.__init__(self, stage) -- 2.30.2