23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.6 Dynamic Behaviour 205<br />

even for a coarse grain partitioning <strong>of</strong> the behaviour. We want to be able to identify<br />

and distinguish states for discussions about the system. For this reason we decided to<br />

define various concepts <strong>of</strong> state in addition to the concept <strong>of</strong> behaviour state, such as<br />

named behaviour state, variables state, global state and execution state. We start with<br />

the description <strong>of</strong> some aspects <strong>of</strong> the concept state itself.<br />

6.6.3.2 State and Finite State Machines<br />

There are various notations for the concept <strong>of</strong> state if dynamic behaviour is denoted<br />

in finite state machine models. An automaton describing a language can be denoted by<br />

regular expressions. A sequential machine implemented in hardware can be described as<br />

an ASM-chart, as a state diagram or as a state transition table. For hardware design, the<br />

notion <strong>of</strong> state is usually interpreted as the value <strong>of</strong> an internal memory (state register)<br />

that remembers the events that happened (inputs <strong>of</strong> the system), and that determines<br />

the response <strong>of</strong> the (sub-)system. However, state can also be interpreted as a temporary<br />

form <strong>of</strong> behaviour. Both interpretations have their own value.<br />

During the design courses we gave for experienced industrial hardware designers, we<br />

noticed that they interpret state rather statically as the value <strong>of</strong> a state register. State<br />

is considered to be a stable situation between two clock ticks. It is not interpreted as<br />

the behaviour that is performed by the system. In the static interpretation, state is<br />

connected with static output. State machines are <strong>of</strong>ten used to switch alternative or<br />

possibly parallel forms <strong>of</strong> behaviour on and <strong>of</strong>f. This leads to a notion <strong>of</strong> state that<br />

matches to the concept <strong>of</strong> behaviour state. The state <strong>of</strong> the controller can be named<br />

according to the observable behaviour <strong>of</strong> the (sub)system, that is switched on. Examples<br />

<strong>of</strong> nameable forms <strong>of</strong> possibly complex (parallel) behaviour are for example: normal<br />

operation mode, test mode, maintenance mode, shutting down, configuring, initialising,<br />

resetting, loading, etcetera. The behavioural notion <strong>of</strong> state is <strong>of</strong>ten called mode. The<br />

value <strong>of</strong> a state register <strong>of</strong> an automaton can correspond to behaviour switched on by a<br />

state automaton. In the following paragraphs we define various sorts <strong>of</strong> states. These<br />

concepts enable to distinguish between various forms that can or cannot be named in<br />

practice.<br />

6.6.3.3 Named Behaviour States<br />

Naming <strong>of</strong> behaviour states is very useful when specifying a system. Because <strong>of</strong> the<br />

various notions <strong>of</strong> state we are forced to create a separate definition for a named state.<br />

A named state is a kind <strong>of</strong> behaviour <strong>of</strong> a module that can be identified by partitioning<br />

the complete behaviour <strong>of</strong> a module into sub-behaviours, that can be given a name<br />

preferably according to a notion in the problem domain. We will also refer to named<br />

behaviour states as modes <strong>of</strong> behaviour or briefly modes. The state belongs to an<br />

operating entity (module) that already exists as part <strong>of</strong> the system. The named grain<br />

<strong>of</strong> behaviour <strong>of</strong> an entity is preferably externally observable. However sometimes it is<br />

useful to use named states for non-externally observable (internal) behaviour too. This<br />

is for instance useful when an external event must be remembered because it will cause<br />

a change <strong>of</strong> behaviour, but which has no immediate visible external effect.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!