949-824-9127

Rainer Doemer

Contact Information

Embedded Systems Design
doemer@ece.uci.edu
(949) 824-9007

Professor Doemer’s Research

Current Projects:

Ongoing Projects:

  • System-on-Chip Environment (SCE)

Completed Projects:

  • ConcurrenC: A Novel Model of Computation for C-based SLDLs (2014)
  • Eclipse-based Platform for Computer-Aided Recoding (2013)
  • Hardware-dependent Software (HdS) (2009)
  • CARS: Computer-Aided Re-coding for SoC Specification (2008)
  • FAT: Fast and Accurate Transaction-Level Modeling (2008)
  • Intl. Embedded Systems Symposium (IESS) (2007)
  • SCRC: SpecC Reference Compiler and Simulator for the SpecC Technology Open Consortium (STOC) (2006)
  • OSCAR: Optimum Simultaneous Scheduling, Allocation and Resource Binding Based on Integer Programming (1996)
  • Visit Web Site

Selected Projects

CARS: Computer-Aided Re-coding for SoC Specification 

Key Researcher: Pramod Chandraiah

To overcome the complexities in today’s System-on-Chip (SoC) design, researchers have developed sophisticated design environments that significantly reduce design and development time through automation. Typically, a SoC design is specified in a system-level description language (SLDL) at a high abstraction level, called a specification model. This model is then step-wise refined down to an implementation with the help of automated (or semi-automated) synthesis tools.

While much research has focused on SoC synthesis tools, little has been done to support the designer in coming up with the initial specification model. In fact, studies on industrial-size examples (MP3 decoder, GSM vocoder, …) have shown that even in the presence of algorithms given in C code, 90% of the system design time is spent on coding and re-coding of the specification model in SLDL. Moreover, the quality of the golden specification model has tremendous impact on the cost and quality of the resulting system implementation. Thus, creating and optimizing the specification model is a critical task towards successful SoC design.

It is the goal of this research project to:

  • identify tasks in system specification and re-coding which are suitable for automation
  • design and develop prototype tools for
    • specification generation
    • automated re-coding
    • source code optimization
  • demonstrate the benefits using real-life examples

FAT: Fast and Accurate Transaction-Level Modeling

Key researchers: Gunar Schirner

The field of embedded systems increasingly extendsto more complex scenarios including safety critical systems. Distributed embedded real-time systems with many processors become necessary. Accurate communication modeling is an important issue for the design of those complex systems. However, efficient system level design requires also high execution performance especially for communication models.

Recent research work introduced Transaction Level Modeling as a means of increasing the simulation performance. Here, large speed-up is gained by abstracting away communication details. Inevitably this results in a loss of simulation accuracy. However, due to the complexity of accuracy measurements and its statistical analysis, no clear expressive quantification of the speed-accuracy tradeoff prevails.

 

 

 

The goals of this research project include:

  • identification of appropriate performance and accuracy properties for communication models
  • definition and statistical analysis of accuracy measurements
  • development and definition of modeling styles that yield high execution speed yet maintain required accuracy
  • demonstration of benefits using industry bus standards (e.g. AMBA, CAN)

ConcurrenC: A Novel Model of Computation for Effective System-level Abstraction of C-based SLDLs

Key researchers: Weiwei Chen

System design in general can only be successful if it is based on a suitable formal Model of Computation (MoC) that can be well represented in an executable System-level Description Language (SLDL), like SpecC and SystemC, and is supported by a matching set of design tools. While C-based SLDLs are popular in system-level modeling and validation, current tool flows impose almost arbitrary restrictions on the synthesizable subset of the supported SLDL. A properly aligned and consistent system-level MoC is often neglected or even ignored.

In this project, we motivate the need for a well-defined MoC in system design. We discuss the close relationship between SLDLs and the abstract models they can represent, in contrast to the smaller set of models the tools can support. Based on these findings, we then propose a novel MoC, called ConcurrenC, that defines a clear system level of abstraction, aptly fits system modeling requirements, and can be expressed precisely in both SystemC and SpecC SLDLs.  Features like communication & computation separation, hierarchy, concurrency, abstract communications (channels), timing, and execution semantics are explicitly supported for the ConcurrenC MoC. We also discuss the relationship between the existing formal MoCs, like Kahn Process Network (KPN) and Synchronous Dataflow (SDF), and ConcurrenC which is essentially a superset of KPN and SDF. It is a versatile and convenient vehicle to express KPN and SDF models in C-based SLDLs.

Our research work will focus on defining the formal execution semantics of ConcurrenC, providing advanced scheduling and distributed simulation capabilities, as well as developing a suitable system design flow based on this MoC.

 
ConcurrenC - Weiwei Chen

SpecC Reference Compiler

Key researchers: Pramod Chandraiah

Web Site: https://www.cecs.uci.edu/~specc/
The SpecC Reference Compiler (SCRC) is an Open Source implementation of a compiler and simulator for the SpecC language.

The goal of the SpecC Reference Compiler is to:

  • promote SpecC standardization
  • provide a reference implementation, that isprovide a basis for SpecC tool development
    • compliant with the SpecC Language Reference Manual (LRM V2.0)
    • freely available
  • provide a basis for SpecC tool development

The SCRC distribution consists of:

  • a SpecC compiler (parser, internal representation, code generator)
  • a SpecC simulator (run-time libraries for SpecC execution)
  • a SpecC standard channel library (channels for synchronization, etc.)
  • a test suite (SpecC LRM compliance test cases)
Reference:
R. Doemer, A. Gerstlauer, and D. Gajski, “SpecC Language Reference Manual, Version 2.0,” December 12, 2002 .
download pdf