Post-silicon Functional Validation with Virtual Prototypes