System-level design: orthogonalization of concerns and platform-based design | Synapse