A Senior-Level Course in Hardware–Software Codesign

Modern electronic system design makes extensive use of programmable architectures, and requires designers to consider hardware and software jointly in their design. A senior-level course named hardware/software codesign provides a practical introduction to these complex system design issues. The challenge is to bring a subject, which is traditionally covered as a graduate-level course, to senior undergraduate students without overly narrowing down the scope, and without turning the course into an ad-hoc design project. The course combines an incremental, structured overview of hardware/software codesign with practical assignments that emphasize key concepts. This paper reviews the motivations for this course, the curriculum, the lab materials and tools used, and the results of the first offering of the course in fall 2006.

[1]  Martin Törngren,et al.  What is embedded systems and how should it be taught?---results from a didactic analysis , 2005, TECS.

[2]  Patrick Schaumont,et al.  A Component-Based Design Environment for ESL Design , 2006, IEEE Design & Test of Computers.

[3]  Giovanni De Micheli,et al.  Readings in hardware / software co-design , 2001 .

[4]  Roberto Passerone,et al.  A Platform-Based Taxonomy for ESL Design , 2006, IEEE Design & Test of Computers.

[5]  Jianwen Zhu,et al.  Specification and Design of Embedded Systems , 1998, Informationstechnik Tech. Inform..

[6]  Stephen A. Edwards,et al.  The Challenges of Synthesizing Hardware from C-Like Languages , 2006, IEEE Design & Test of Computers.

[7]  Alberto L. Sangiovanni-Vincentelli,et al.  An overview of embedded system design education at berkeley , 2005, TECS.

[8]  Wayne H. Wolf A Decade of Hardware/Software Codesign , 2003, Computer.

[9]  Frank Vahid,et al.  Embedded system design - a unified hardware / software introduction , 2001 .

[10]  Srivaths Ravi,et al.  Custom-instruction synthesis for extensible-processor platforms , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[11]  Cameron D. Patterson,et al.  A Holistic Approach Towards a Unified CpE Laboratory Platform , 2007, 2007 IEEE International Conference on Microelectronic Systems Education (MSE'07).

[12]  Jan Madsen,et al.  A Sophomore Course in Codesign , 2002, Computer.

[13]  John W. Lockwood,et al.  Use of a soft-core processor in a hardware/software codesign laboratory , 2005, 2005 IEEE International Conference on Microelectronic Systems Education (MSE'05).

[14]  Steve Leibson,et al.  Engineering the complex SOC : fast, flexible design with configurable processors , 2004 .

[15]  R. James Duckworth Embedded system design with FPGA using HDL (lessons learned and pitfalls to be avoided) , 2005, 2005 IEEE International Conference on Microelectronic Systems Education (MSE'05).

[16]  Alberto L. Sangiovanni-Vincentelli,et al.  Platform-Based Design and Software Design Methodology for Embedded Systems , 2001, IEEE Des. Test Comput..

[17]  Klaus D. Müller-Glaser,et al.  Hardware/software co-training lab: from VHDL bit-level coding up to CASE-Tool based system modeling , 2005, 2005 IEEE International Conference on Microelectronic Systems Education (MSE'05).

[18]  Robert H. Klenke,et al.  A new hardware/software codesign environment and senior capstone design project for computer engineering , 2003, Proceedings 2003 IEEE International Conference on Microelectronic Systems Education. MSE'03.

[19]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.