Hardware Design Best Practices