In `behavioural' expression, a thread, as found in imperative languages such as C and Java, assigns to variables, makes reference to variables already updated and can re-assign new values.
Unlike 'pure RTL', the order of the statements has an effect.
The following behavioural code
if (k) foo = y; bar = !foo;can be compiled down to the following, unordered `pure RTL':
foo <= (k) ? y: foo; bar <= !((k) ? y: foo);
I found the following exercise book snapshot on Google images. It is trying to demonstrate the crucial difference between assignment operators, but are the details quite right ?
|11: (C) 2012-17, DJ Greaves, University of Cambridge, Computer Laboratory.|