June 24, 2007
June 24, 2007
June 27, 2007
Electrical and Computer
12.836.1 - 12.836.5
Implementing a Hands-On Undergraduate Course in Software-Hardware Codesign Yi Cheng, Kathleen Hayden, Aliyazicioglu Zekeriya California State Polytechnic University, Pomona
The Electrical and Computer Engineering (ECE) Department of California State Polytechnic University, Pomona started to offer a Bachelor of Science of Computer Engineering in fall, 2003. This Computer Engineering program offers a balanced curriculum in both software and hardware; there are seven quarter courses in digital hardware, and seven courses in software. These courses are taught in a traditional way; the interaction and trade-off between hardware and software design is hardly covered in any computer engineering courses. The faculty members have been trying for several years to integrate hardware with software courses.
The ECE faculty members have been working with the managers and engineers of the Department Industrial Advisory Council to update our curriculum. With their encouragement, we started to teach hardware-design language and digital design based on Field Programmable Gate Array (FPGA) in our Electrical Engineering and Computer Engineering programs. They also told us about their strong interests in the applications of software-hardware co-design (SHC) in embedded systems. With their assistance, we were able to set up a digital design laboratory with design software from Cadence, Synopsis and Xilinx.
There are many inexpensive FPGA boards from several vendors, which offer flexibility, performance and ease of use. Our students can design, implement and test digital circuits using a hardware description language, Verilog or VHDL. Many FPGA boards allow users to instantiate a high performance processor, such as MicroBlaze, PowerPC, and ARM, etc., and its memory and I/O devices on an FPGA chip. Therefore, we can use the board to implement a very flexible and powerful embedded system. Furthermore, these boards can also serve as platforms to explore the SHC system design and testing. We decided to change an existing junior-level course in IBM-PC Interfacing  to an introductory course in SHC, and offered it in fall 2006.
2. SHC Lecture and Laboratory Course
This junior-level hardware-software co-design course consists of a 4-unit lecture and a one-unit laboratory. Students attend a 65-minute lecture three times a week, and a 3-hour laboratory course. The pre-requisites of this course are the two digital logic courses, which teach basic logic analysis, design and simulation using Verilog design, two C/C++ programming courses, and one introductory embedded system course.
2.1 Lecture Course
The lecture course consists of three components: the MicroBlaze computer system architecture, embedded system software design using MicroBlaze Device Driver
Cheng, Y., & Hayden, K., & Aliyazicioglu, Z. (2007, June), Implementing A Hands On Undergraduate Course In Software Hardware Codesign Paper presented at 2007 Annual Conference & Exposition, Honolulu, Hawaii. 10.18260/1-2--2198
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2007 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015