This block is a synchronous version of
Modelica.Blocks.Math.BooleanChange.
It uses previous instead of the implicit pre of
change to set the Boolean output y to
true when the boolean input u changed. Thus, it's
logic is:
if firstTick() then y = false; else y = not (u == previous(u)); end if;
This block might be superfluous and replaced by
Modelica.Blocks.Math.BooleanChange when the semantics
of change are relaxed and well-defined for
clocked discrete-time partitions.