Overview issue for multi-level synthesis
Thesis at https://research.tue.nl/files/138331698/20191122_Goorden.pdf
It seems to be Chapter 4.
And the technical paper is at https://ieeexplore.ieee.org/abstract/document/8759973 .
Parts required for a first working version:
-
Rewriting event controllability (in #308 (closed)) -
Removing unused algebraic variables (in #320 (closed)) -
Performing DSM analysis (in #344 (closed)) -
Converting CIF for DSM (Design Structure Matrix) analysis (in #368 (closed)) -
Create the multi-level synthesis tree that defines the supervisors to create (in #632 (closed)) -
Constructing subsets of plant automata (in #319 (closed)) -
Make the multilevel available for users (in #1180 (closed)). -
Running data synthesis for parts (in #738 (closed)) -
Write documentation (in #1182 (closed)) -
Allow setting clustering parameters (in #1194 (closed)) -
And eventually thus "multi level synthesis". -
Tests: -
Add regression tests that cover end-user usage, language concepts, etc. See also #738 (comment 2968242). -
Add tests that combined synthesis result of multi-level synthesis is equal to the monolithic synthesis result. See also #738 (comment 2968242). See also commit bfa2aab9, this discussion (!1285 (comment 4244673)), and this script could be adapted and used for it: multi-level-synthesis-vs-monolithic-synthesis-language-equivalence-check.tooldef -
Update copy_allscript for multi-level splitter. See also #1128 (comment 3590638).
-
Later tasks:
-
Allow the generated ToolDef script to merge the partial controlled system specifications into a single one, to get a result similar to that of monolithic synthesis (but with multiple supervisor automata), and that can be used as input to the CIF controller properties checker, code generators, etc. (see !1285 (comment 3987766)) -
Consider flipping some matrices to match the paper. See also the discussions here and here. -
Reconsider the debug output. See also the discussions here, here, here and here. -
Pre-checking constraints of data-based synthesis can currently not be checked in the multi-level application, since they need much more detailed analysis (implemented in #1181 (closed)). -
Optimize/remove multi-level tree nodes that are superfluous. See !696 (comment 1748818). -
Generate splitted CIF specification names that express their place in the tree hierarchy. -
Explain in the documentation what an empty partial specification means. See also !696 (comment 1567632) and #738 (comment 2137353). -
Decide what to do with input variables !696 (comment 1567631) and #738 (comment 2137358). -
Allow plant invariants.
EDIT: Updated the list and changed the order such that items near the top are dependencies for items further down in the list.
Edited by Martijn Goorden