University of Toronto Computer Engineering Research Group (EECG)

Current Research Projects

Student duties involve the theoretical study of the problem and the development of a CAD tool. If you like topics such as VLSI design (logic synthesis, testing), algorithms and programming, then there is good confidence you will like this work. It is common for our students to intern at leading industrial facilities. If you are already admitted to UofT and you are interested, email for an appointment. Otherwise, you first need to apply for admission to our graduate program.

We kindly acknowledge the contribution of various Canadian and Provincials agencies ( NSERC, CFI, CITO, Micronet ) as well as our domestic and international industrial partners (Motorola/Freescale-Austin, Motorola/Freescale-Markham , Intel Corporation-Portland, ATI, Infineon Technologies - Munich, Altera-San Jose ) that aid materialize our work. We are also thankful to all our graduate and undergraduate students (past and present) for their contributions, dedication and ethics.

(The following list of topics is kind of outdated but indicative of our research areas...)

Design Error and Fault Diagnosis


With the increase in the complexity of digital VLSI circuits, multiple design errors or/and manufacture defects can occur in a gate-level implementation or in a manufactured chip. In addition, due to recent advances in boolean satisfiability solvers, they have become a popular in VLSI CAD applications. The focus of this work is to develop efficient techniques for multiple fault/design error diagnosis using boolean satifiability solvers, as well as to optimize the satisfiability solver for this specific application. We intend to use this work for fault diagnosis of different physical faults such as bridges, stuck-at faults and opens. We are also interested in more traditional design error and dault diagnosis thechniques as well as automatic fault repair techniques of memory structures. 


Design Verification


Functional verification is a hard problem with crucial time-to-market and financial consequences. It has been reported that the VLSI engineer dedicates at least 50% of his/her time to perform various verification related tasks. In this work we develop diagnosis-based verification techniques for designs with a degree of structural similarity. We use various formal equivalence engines (BDDs, ATPG, SAT-solvers etc) and we intend to apply our techniques to build efficient logic-to-logic verification tools.


Logic Optimization with Physical Level Considerations


Logic optimization is the step of the VLSI design cycle where a netlist is modified to reduce area, power consumption, switching noise or to improve the testability of the final circuit. We are interested in techniques that perform a sequence of simple logic transformations (design rewiring) until the desired constraints (usually defined at the logic and physical level) are satisfied. We intend to apply these techniques in a variety of different optimization and synthesis problems such as routing, synthesis for testability, low-power and delay.


Synthesis for Engineering Change


In a typical VLSI synthesis process specifications may change when the designer has already invested a significant amount of effort to get a design. Engineering changes to the original specification (RTL, HDL etc) may require large changes in the existing gate-level implementation if a conventional CAD tool is used. This is undesirable as it can jeopardize the engineering effort invested in the design. In this project we are interested for simulation/symbolic-based tools that can perform engineering changes efficiently.

  University of Toronto Computer Engineering Research Group (EECG)