ECE: Electrical & Computer Engineering
Accredited by ABET
Undergraduate Programs

ECE 4530 Hardware-Software Codesign


Spring 2015 textbook list

The Spring 2015 ECE textbook list is available online for students.

Current Prerequisites & Course Offering

For current prerequisites for a particular course, and to view course offerings for a particular semester, see the Virginia Tech Course Timetables.

Return to course list

ECE 4530 Hardware-Software Codesign (3C)

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.

What is the reason for this course?

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.

Typically offered: Fall. Program Area: Computers.

Prerequisites: 3504, ECE 2984 (Microprocessor System Design)or 2534; C- or better in all.

Why are these prerequisites or corequisites required?

The course assumes a basic knowledge of microprocessor system design, including assembly and C programming, basic processor architecture, interrupts, memory-buses, and peripherals, as covered in ECE 3534. The course assumes a basic knowledge of custom hardware design, including the design of synchronous sequential circuits, hardware arithmetic, and hardware controllers, as covered in ECE 3504.

Design Technical Elective for CPE

Department Syllabus Information:

Major Measurable Learning Objectives:
  • analyze and explain the control-flow and data-flow of a software program and a cycle-based hardware description,
  • transform simple software programs into cycle-based hardware descriptions with equivalent behavior and vice versa,
  • partition simple software programs into hardware and software components, and create appropriate hardware-software interfaces to reflect this partitioning,
  • identify performance bottlenecks in a given hardware-software architecture and optimize them by transformations on hardware and software components, and
  • use simulation software to co-simulate software programs with cycle-based hardware descriptions.

Course Topics
Topic Percentage
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%

Return to course list