Modeling concurrency

Hi

I am just starting with Julia and would like to model concurrency as in digital circuits. A trivial example would be to model a 3 bit counter and see its output in a waveform viewer.

A more evolved example would be to use the MSB of the 3 bit counter above to enable a slower 2 bit counter.

How do I go about this?

Maybe some thing akin to python generators which hold their state and return values at clock edges? This brings up the topic of defining clocks. How do we do that?

thanks!

Maybe SimJulia.jl has what you need?

Thanks! I will check it out.