Correct Hardware Design and Verification Methods