Module gcd
Event start?? : bit;
Channel a?, b?, gout! : array [7:0] of bit;
Variable x,y : array [7:0] of bit;
behavior
<GCD> <= start?? -> <INPUT>
<INPUT> <= a?x, b?y -> <WHILE>
<WHILE> <= if ((x == 0) and (y == 0)) -> gout!x -> <INPUT>
else -> <PROCESS>
PART
<PROCESS> <= if (x >= y) -> x := x - y -> <PROCESS>
else -> y := y - x -> <WHILE>
endbehavior