Hardware software co-design is becoming increasingly important to the embedded systems industry. It will soon be fundamental to digital systems design. As such, students in electrical and computer engineering and in computer science should be introduced to hardware-software co-design early in their undergraduate education.

We are designing laboratory modules which introduce concepts of hardware-software co-design in an undergraduate's first course on microcontrollers and digital systems design. Students use design automation tools to develop FPGA-based hardware for use with an 8051-microcontroller and use common software development tools to develop microcontroller software in C or assembly language. Co-simulation of hardware and software is enabled using a simulation model of the 8051 that we developed.

Preliminary results are encouraging. Students who take the lab perform better in the associated lecture class than those who do not take the lab and appear to develop a greater appreciation for digital systems design. We believe such laboratories will be a common component of computer engineering classes in the future.

Meeting Name

30th Annual Frontiers in Education Conference (2000: Oct. 18-21, Kansas City, MO)


Electrical and Computer Engineering

Keywords and Phrases

C Language; FPGA; Assembly Language; Co-Simulation; Computer Engineering; Computer Science Education; Digital Systems Design; Educational Courses; Electrical Engineering Education; Electronic Engineering Education; Embedded Systems; Hardware Software Codesign; Hardware-Software Codesign; Laboratory Modules; Logic CAD; Microcontrollers; Software Development Tools; Software Tools; Students; Teaching; Undergraduate Education

International Standard Book Number (ISBN)


International Standard Serial Number (ISSN)


Document Type

Article - Conference proceedings

Document Version

Final Version

File Type





© 2000 Institute of Electrical and Electronics Engineers (IEEE), All rights reserved.

Publication Date

01 Oct 2000