atomic type get data data int tick=0 data int PA data dataType in data data dataType out data data dataType store data export port portType in data port(in data) export port portType out data port(out data) export port intPort tick port(tick) place idle place compute initial to idle on in data port from idle to compute do { store data = in data; } on tick port from idle to idle do { tick = tick+1; } on tick port from compute to compute do { tick = tick+1; } on out data port from compute to idle provided (PA = tick) do { out data = store data; tick = 0; } end