Virginia Tech® home

ECE 5534 - Electronic Design Automation (3C)

Course Description

This course introduces graduate students to the various electronic design automation artifacts, algorithms, and methodologies. It includes system level design languages, abstractions, models of computation, high level synthesis, modeling and model transformations, simulation based validation, etc. The course deals with state-of-the-art design practices, algorithms, and methodologies. It requires a solid background in computer architecture, digital design, and proficiency in programming and modeling.

Why take this course?

Pressure on reducing a product's time-to-market is placing increasing demands on the preparation of correct specifications and the synthesis of designs meeting the requirements of the specifications. Because specifications occur in every design project, engineers must understand the capabilities and limitations of various notational systems used to express design requirements, and must know how the notations are related as well as how they should be interpreted. This course is essential for students who will develop systems to automate design methodologies and synthesis of designs from high-level specifications. The course also significantly benefits the students who will be responsible for the preparation of specifications, as well as, the students that will manually synthesize designs from initial specifications. Also, the material of this course is essential for graduate students planning on doing a thesis or dissertation in the area of electronic design automation.

Learning Objectives

  • Design hardware/software system models in a suitable system-level modeling language, such as SystemC.
  • Use suitable heuristics to partition functional models into hardware and software components.
  • Construct models for expressing functionalities of a system with appropriate models of computation and optimize such models for efficient simulation.
  • Compare the complexity and efficiency of various algorithms for high-level synthesis from system models and design programs to implement such algorithms.
  • Express semantics of various modeling languages using formal notations and techniques for expressing models of computation.