tuura / plato

A DSL for asynchronous circuits specification
Other
12 stars 2 forks source link

Add reset concepts #92

Open snowleopard opened 6 years ago

snowleopard commented 6 years ago

There is a subtle difference between initialise and reset concepts:

@danilovesky knows much more than I about this, as he implemented a special Reset plugin in Workcraft.

An example:

circuit a b c = cElement a b c <> inputs [a, b] <> outputs [c]
    <> initialise0 [a, c] <> initialise1 [b] -- note that a = 0 and b = 1 do not force c = 0!
    <> reset [c] -- therefore we must reset the C-element at start-up to the desired output value