Finding Uni-Directional Cuts Based on Physical Partitioning and Logic Restructuring