I have already posted (in a lost record) that HDLs may be easier than serial programming to react on state change. Here is another example.
I have a loop that produces some objects and submits them to a function for further processing. It works as a driver and the target function can be easily swapped. Now, let's suppose that the demand is to use exchange the roles: the loop must be transformed in a function that returns an object per request. In ordinary programming language, it would be quite involving. In VHDL, there is an simpler option -- to run the existing loop in one process. The function consumes the data from the user process.