Automatic Generation of Application-Specific Architectures for Heterogeneous Multiprocessor System-on-Chip