Top-down Design of Distributed Embedded Systems in Light of Timing Considerations