Constraint-Based Random Stimuli Generation for Hardware Verification