Hardware/software co-design is an area of embedded system design that studies methods and tools for efficient implementation of embedded computer systems containing both processors and hardware implementations. The main challenge is to explore a design space and find efficient solutions that fulfills required system parameters and optimizes other criteria. Typical criteria include performance, power consumption and cost.
In this area, we study embedded systems specially deigned for specific applications as well as more flexible reconfigurable systems. We try to explore different trade-offs, such as parallelism vs. cost or energy consumption vs. performance. We propose methods that solve these problems during design time as well as run-time methods.