A global criticality/local phase driven algorithm for the constrained hardware/software partitioning problem | Synapse