csu

Sudeep Pasricha

Assistant Professor


CS/ECE561 -
Hardware/Software Design of Embedded Systems

Fall 2011

Home    Schedule/Lectures    Assignments/Project    Resources    Course Policies


Homework Assignments

 All homework assignments must be completed individually. You can discuss with others, but ultimately the work should be your own. Try and show all the steps used to arrive at your solutions. Late submissions will not be accepted.

  Topic Area and Resources Date Posted Due Date
1.      

Assigned Embedded System Projects

  Project Description Students Final Presentation
1.      



Project Logistics and Details

Embedded System Design: In this project, you have to explore some facet of embedded system design. Your project can involve developing a piece of software, or an analysis of some challenging aspect of embedded system design. I have listed some potential topics below, but you are free to suggest other topics as well, as long as they pertain to embedded systems in some way. In addition to developing any software/hardware demo you must also write a report no more than 6 pages long, A4 single-spaced, two-column, 10pt font text, in standard IEEE format. Microsoft Word and Latex templates can be found here. The project can be done individually or in groups of two. The key to doing well on this project is to do a project related to any research, development, or design work you are doing at CSU or at your company related to embedded systems. Other keys include getting started as soon as possible, finding a fun topic, and recruiting a good partner. An interim report (can be a working draft) for this  project will be required mid-semester for me to assess your ongoing work and give you feedback. Just like the literature survey, a benefit of doing well on this project is that you might produce work that can be published in a conference or a workshop. If your project paper is deemed worthy of being published in an IEEE conference or workshop, you will automatically get an A+ at the end of the course. In addition, the best project will also get an A+ grade at the end of the course. A 1 page project summary is required by Sep 2 for approval, before beginning work on the project.

Sample Topics:

  • Explore Memory Architectures for Multiprocessor Architectures: Memory is a performance bottleneck and also consumes a large amount of power in multiprocessor embedded systems. Use a multiprocessor simulation environment (refer to the resources page) to explore different memory organizations for the cache and on-chip memory (sizes, associativity, levels of hierarchy, etc.) to improve performance and power dissipation (use CACTI for power estimation of memories; refer to the resources page) in the system for different benchmarks.
  • Explore Network on Chip (NoC) Protocols: The performance and power dissipation of the on-chip communication network depends heavily on the protocols chosen. Use an existing NoC simulator (refer to the resources page) to explore different packet sizing, switching, routing and/or arbitration protocols and quantify their impact on overall system performance, and/or power for different benchmarks.
  • Explore Fault Tolerant Communication Techniques: Dynamic packet routing techniques are used to overcome faults in communication networks on a chip. Use an existing NoC simulator (refer to the resources page) to explore different routing schemes and their suitability to work correctly in the face of varying amounts of faults on the links, and switches for different benchmarks.
  • Build a NoC Simulator: Develop a simulator for Network on Chips (existing simulators have several limitations, for instance a limited ability to capture different topologies) in SystemC or C/C++. The simulator should be configurable and be able to support different switching, routing, arbitration, topology, and flow control schemes. Refer to existing simulators as a starting point from the resources page.
  • Build an Embedded Systems Application: Develop a tangible application that requires an embedded system at its core. This could be an FPGA based robotics applications, distributed network of embedded devices, a mod of an existing embedded device, or anything else that you can think of that will have you working on both the hardware and software design aspects of the application. See some of the sample projects below from last semester. Here are some resources for those who are interested in building an embedded system:
  • Embedded System Design Case Study: You have to conceptually design an embedded system from scratch and write a report on it. You don't actually have to create the embedded system, but rather analyze the whole design process. The goal here is to develop an appreciation for all the steps required to create an embedded system. You should start from the initial specification (what should the embedded system do?), and then go through the steps of choosing how to implement the functionality (what goes in hardware and what in software?), choosing the right components (which processors, memories, peripherals to use? what are the trade-offs?), choosing which hardware or software optimizations to employ (should you optimize for power? performance? reliability? a mix of these? etc.) and finally estimating the cost of the system (based on component costs), and describing it's impact. The idea is to develop an embedded system that is different from what's available in the market, and does something that existing systems are not able to, filling a need in one or more application domains (e.g. consumer, medical, automotive, defense, etc.). How will your system fit a need that exists today, or will exist in the future? You should be able to clearly explain how viable your design choices are, and what is the motivation for choices that you make at every stage of the design process. Note: this project is a last resort selection, and since the work required is not substantial, your grading will take that into consideration. So you can expect a lower grade for the project, compared to other alternatives.

Sample Projects (from Spring 2009 and Fall 2009):

  • Evaluating Task Scheduling for an FPGA based Embedded Linux System [pdf]
  • Embedded Home Security System [pdf]
  • Novel Hybrid Photonic Network-on-Chip for Emerging Chip Multiprocessors [pdf]
  • Dynamically Adaptive Inverted Pendulum Platform [pdf] (Winner of 2009 NASA Space Grant Symposium)
  • Roving Wireless Sensor Network [pdf]
  • Interactive Teaching Guitar [pdf]
  • Software partitioning technique for an RF matching network on an embedded system [pdf]