Towards Single-Pass Timing Closure: A Macro Architecture Planner for System-On-Chip