La respuesta corta:
a se actualizará en el ciclo delta después de que b o c cambien.
b se actualizará 5 ns después de d o e cambios.
(Lo que desencadena una actualización de a)
La respuesta más larga:
Estas declaraciones no son secuenciales, porque aparecen en la región concurrente.
Formalmente, cada uno es equivalente a un proceso sensible a todas sus entradas. Por lo tanto, cuando se produce un evento en cualquiera de sus entradas, el proceso se activa, realiza la operación y se suspende.
La operación da como resultado una "asignación pospuesta" en su señal de salida: es decir, cuando este proceso se ha suspendido y TODOS los demás procesos activos se han suspendido, ENTONCES la asignación se realiza (o está programada para que ocurra más adelante, como en 'después de 5 ns'.
Cuando ocurre la asignación (ya sea en el siguiente ciclo delta, o 5 ns más tarde), se genera un "evento" en esa señal, que programa todos los procesos sensibles a ella para que se activen ...
Por lo tanto, las señales no son como variables, son el mecanismo de comunicación y programación entre procesos en VHDL.
Más detalles aquí ... enlace