Digital system test and testable design : using HDL models and architectures