An introduction to the design of mixed hardware-software systems, focusing on common underlying modeling concepts, the design of hardware-software interfaces, and the trade-offs between hardware and software components. Students will use simulation tools to conduct experiments with mixed hardware-software systems in the area of embedded systems.
In classic embedded system design, hardware and software components are developed independently by separate design teams. This leads to a slow and inefficient design process. There is general agreement in the design community that a combined consideration of hardware and software design issues will lead to more efficient systems and a more efficient design process. This course, targeted at computer engineers, addresses these issues.The course provides an introduction in hardware-software co-design. It outlines the basic strengths of hardware and software implementations, and shows how to combine those into a successful system design. The focus is on the commonalities in the design process of hardware and software, as well as on the design of hardware-software interfaces.
Topic |
Percentage of Course |
System-level Executable Specifications | 10% |
Control-flow and Data-flow | 10% |
Basic Block Representation of Software | 5% |
Finite State Machines with Data Path | 5% |
Cycle-based Simulation of Hardware and Software | 10% |
Hardware-Software Interfaces | 15% |
Transformation Techniques | 10% |
Optimization Techniques | 15% |
Using Hardware in Data-oriented Processing | 10% |
Using Software in Control-oriented Processing | 10% |
Copyright © 2019 Virginia Tech Department of Electrical and Computer Engineering
An Affirmative Action/Equal Opportunity Employer | Privacy Statement | Contact Webmaster