====== Design of WAIT2 component ======
Decompose the ''WAIT2'' component into ''WAIT'' for waiting the high level of non-persistent signal sig and ''WAIT0'' for its low level. The control module ''W2C'' toggles between ''WAIT'' and ''WAIT0'' according to the polarity of its ctrl input.
{{ WAIT2.circuit.svg?50% |Schematic of WAIT2 component}}
Behaviour of ''W2C'' is captured by the following STG.
{{ W2C.stg.svg?35% |STG of W2C control}}
Verify the STG for consistency, deadlocks, output-persistency and input-properness.
Note that this STG has CSC conflicts. Resolve them either automatically or manually, e.g. by concurrency reduction, as follows:
{{ W2C-cr.stg.svg?35% |STG of W2C control with concurrency reduction to resolve CSC conflicts}}
Proceed to synthesis and technology mapping with either //MPSat// or //Petrify// backend. The result should look similar to this:
{{ W2C-tm.circuit.svg?50% |Implementation of W2C control}}
Experiment with reset strategies using //Initialisation analyser// tool. One can notice that ''ctr'' input is initially set to ''0'' by ''CYCLE'' module, also C-element ''U2'' can be explicitly reset. These lead to initialisation of ''ctrl_1'' and ''ctrl_0'' to ''0'', which reset ''san_1'' and ''san_0'' (outputs of ''WAIT'' and ''WAIT0'').