High Level Programming of High Performance Embedded Computing Systems
Reconfigurable computing is a promising technology for high performance embedded systems. For many applications, spectacular performance has been achieved that consistently outperforms hand-tuned software and sometimes even application specific hardware implementations. Unfortunately, the skills required to exploit this technology are often confined to a handful of application designers who are also experts in advanced circuit design techniques.
The goal of the HiPHiPECS project is to bring Reconfigurable Computing, in particular High Performance Embedded Computing, into the Computer Science curriculum. To achieve this, we have designed two new Embedded System courses in the Computer Science Department at Colorado State University, CS460 and CS560, and we have created a specialized lab, The Embedded Systems Lab, to be utilized by these new courses. A combination of top-down methods based on abstractions and bottom-up methods breaking down abstraction barriers is, in our opinion, exactly what is needed to teach a great Embedded Systems Design course. We see three levels of abstraction for Embedded Systems Design: at the bottom, circuit level using VHDL or Verilog, in the middle Operating System and Architecture level using an Embedded Design Kits, and at the top, high level programming languages and compilers to automatically derive hardware designs.
The first, senior level, course for Computer Scientists and Electrical/Computer Engineers teaches the bottom two abstraction levels; the second, graduate level, course teaches the high level tools. The senior level course was offered for the first time in the Spring of 2004. In this course it is intended to familiarize the students with industry standard design tools for embedded and reconfigurable systems, and to introduce them to hardware design paradigms. The second course was first offered in the Spring of 2005 to graduate level research students. It focuses on the creation of high performance architectures using high level design tools developed here at CSU.
A. P. Willem Bohm
Charlie Ross, Research Assistant, CS460 Teaching Assistant
Monica Chawathe, CS460 Teaching Assistant
Nick Meier, CS460 Lab Notes
Lakshminarayanan Renganarayana, CS560 Teaching Assistant
Gautam Gupta, CS560 Teaching Assistant
This work is funded by a NSF Grant:
We wish to express our gratitude to Xilinx for their generous donations of hardware and software. Without these donations
it would have been impossible to build The Embedded Systems Lab.
Ross, C. and Bohm, W., Using FIFOs in Hardware-Software Co-Design for FPGA Based Embedded Systems, IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM04), May, 2004.
Ross, Carlos and Bohm, Guillermo, Bringing Reconfigurable Computing and Embedded Systems into the Computer Science Curriculum, Proceedings of the 2004 International Conference on Reconfigurable Computing and FPGAs, Sept 2004, pp. 228-237.
The Embedded Systems Lab
Last updated February 08, 2005