Hardware/Software co-design and co-verification of embedded systems with Registers