Modern Hardware Design Practices