hardware layout optimization techniques