Intellectual property protection in VLSI designs :theory and practice