Designing TSVs for 3D Integrated Circuits