Structured Functional Level Test Generation Using Binary Decision Diagrams