Correct Hardware Design And Verification Methods by Daniel Geist & Enrico Tronci