An effective approach to automatic functional processor test generation for small-delay faults