A CPE faculty team is building course modules and a curriculum to integrate verification at all levels of ECE education. The project is funded by a three-year, $371,751 grant from the National Science Foundation (NSF).
The growing complexity of systems has made verification, testing, and debugging a key issue and potential bottleneck in hardware and software development. The 2003 International Technology Roadmap for Semiconductors (ITRS) reported that for highly complex projects, verification engineers currently outnumber designers by two or three to one.
In contrast to the role of verification in practice, most engineers graduate with little background in the field, according to Michael Hsiao, principal investigator on the project. “They are not prepared to handle the complex task,” he said.
The Tech curriculum effort seeks to reshape the design culture. Instead of “design conception and implementation …becoming mere preludes to the main activity of verification,” as described in ITRS, the team wants to instill verification-centric design and introduce formal verification skills.
“In typical class projects, the students are given specifications for what the design should do, and possibly very limited suggestions on how to verify and debug the design,” Hsiao explained. “As a consequence, a disproportionate amount of effort is spent on design verification that resulted from an ill-planned design-and-verification flow. In most courses, random simulation is the workhorse for validating the design. No coverage analysis, coverage-directed, or semi-formal verification is used or required.”
With the verification-centric curriculum, students would be able to envision the verification tasks before the design begins, be able to write properties and transactions to be checked, know how to embed Design-For-Verifiability into the design, be able to discern which verification approaches should be used for a target design task, and be able to apply formal and semi-formal verification techniques.
The faculty team of Hsiao, Sandeep Shukla, Dong Ha, and Joseph Tront are developing components to add verification content in the appropriate courses as well as introduce verification-centric design into class projects throughout the curriculum at all levels. The team is also developing courseware, based on verification breakthroughs developed at Tech.
The team is developing an introductory graduate course to cover the mathematical and computational theory needed for in-depth study of verification techniques. “Entering engineering graduate students typically do not have a strong enough theoretical foundation,” Hsiao explained. “If these students were to take separate courses to learn combinatorics, complexity, algorithms, graphs, and linear programming, they would need to take five or six different courses before beginning their work in the field. Our introductory course in formal foundations for computing will provide the background to move into the area quickly, yet take separate courses as needed.”