Embedded Systems

Established: March 27, 2000

Our work on Embedded Systems and Reconfigurable Computing covers both the system software and hardware platform issues.


System software is long lived and hard to develop.

  • How can we make computers and consumer electronic devices less helpless and needy of detailed instruction?
  • How can we build predictable systems out of a mix of real-time and non-real-time entities?
  • How can we trust the computers and how can they trust us? But keep our privacy, lifestyle, safety, and convenience?
  • What are the programming paradigms that simplify the programmer’s tasks without undue overheads?
  • How can we verify that software behaves as expected and adapts to a changing environment?
  • How do we structure software for resource-constrained environments, while maximizing portability, reuse, and sharing?

Embedded hardware is diverse and forever changing.

  • How can we realize more stable platforms without raising costs and complexity?
  • What can we do to increase ease-of-use, especially for verification, debugging and performance tuning?
  • How can we shorten the development and testing time for new systems?
  • How can we best use reconfigurable hardware to execute software more efficiently?
  • What are the best ways to exploit the functionality and the efficiency of reconfigurable computing?

Our approach in investigating these complex problems is to understand, simplify, build and test. We keep things as simple and minimalist as possible, without sacrificing generality. We build actual systems, both physical and simulated, to verify and measure the results. We test our systems ourselves and make them freely available to the research community, both for verification and for teaching purposes.

This 96MB Word document is a snapshot of the group’s current work. It reports on the demonstrations that we brought to the 2009 Microsoft Faculty Summit in Redmond, WA, USA. A shorter 2.6MB PDF document is also available, without the posters.













gNOSIS: Advancing Hardware Development

Established: May 1, 2010

Field Programmable Gate Arrays (FPGAs) are used in wide range of applications from small devices to big data centers. Verilog HDL is one of the most common languages used by FPGA designers to implement a design. Then, different CAD tool…


Established: February 12, 2007

The "extensible MIPS" is a dynamically extensible processor for general-purpose, multi-user systems. The reconfigurable logic (Extensions) dynamically load/unload application-specific circuits. Extensions add specialized instructions to the processor, security monitors, debuggers, new on-chip peripherals. Extended Instructions dramatically speedup application programs, just…


Established: February 12, 2007

Giano is a simulation framework for the full-system simulation of arbitrary computer systems, with special emphasis on the hardware-software co-development of system software and Real-Time embedded applications. <h2>Overview<h2> Giano allows the simultaneous execution of binary code on a simulated microprocessor…