An EFSM-Driven and Model Checking-Based Approach to Functional Test Generation for Hardware Designsстатья