You have a state, call it 'summer'. From what I understand you want to move on to 'autumn'. Independently of what the intermediate processes are or can be, what I think is needed is simply a variable containing an index to the current state. We call it 'season'. So, every time you need to change 'season', you can add 1 to this state. If of course, again, I understand correctly, since I know nothing about vhdl. The thing is, which event will get to increase the state. As a reminder, b4a is an event driven language. If for some reasons you want changes to be performed without an event triggered, I think you can use a timer-based code.