BALBOA: a component-based design environment for system models

This paper presents the BALBOA component composition framework for system-level architectural design. It has three parts: a loosely-typed component integration language (CIL); a set of C++ intellectual property (IP) component libraries; and a set of split-level interfaces (SLIs) to link the two. A CIL component interface can be mapped to many different C++ component implementations. A type-inference system maps all weakly-typed CIL interfaces to strongly typed C++ component implementations to produce an executable architectural model. Thus, this amounts to selecting IP implementations according to a set of connection constraints. The SLIs are used to select, adapt, and validate the implementation types. The advantage of using the CIL is that the design description sizes are much smaller because the runtime infrastructure automatically selects the IP and communication implementations. The type inference facilitates changes by automatically propagating them through the design structure. We show that the inference problem is NP complete and we present a heuristic solution to the problem. We bring forth a number of issues related to the automation of reusable IP composition including type- compatibility checking, split-programming, and introspective composition environment, and demonstrate their utility through design examples.

[1]  John K. Ousterhout,et al.  Scripting: Higher-Level Programming for the 21st Century , 1998, Computer.

[2]  C LuckhamDavid,et al.  Specification and Analysis of System Architecture Using Rapide , 1995 .

[3]  Daniel D. Gajski,et al.  SPECC: Specification Language and Methodology , 2000 .

[4]  Peyman Oreizy,et al.  Using object-oriented typing to support architectural design in the C2 style , 1996, SIGSOFT '96.

[5]  Jon Hopkins,et al.  Component primer , 2000, CACM.

[6]  Stan Y. Liao,et al.  Using a Programming Language for Digital System Design , 1997, IEEE Des. Test Comput..

[7]  Edward A. Lee,et al.  System-Level Types for Component-Based Design , 2001, EMSOFT.

[8]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[9]  Michael Winter,et al.  Components for embedded software: the PECOS approach , 2002, CASES '02.

[10]  Hiroyuki Tomiyama,et al.  Architecture Description Languages for Systems-on-Chip Design , 1999 .

[11]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[12]  Abhijit Ghosh,et al.  Methodology for hardware/software co-verification in C/C++ , 2000, Proceedings 2000. Design Automation Conference. (IEEE Cat. No.00CH37106).

[13]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[14]  Patrick Schaumont,et al.  An object oriented programming approach for hardware design , 1999, Proceedings. IEEE Computer Society Workshop on VLSI '99. System Design: Towards System-on-a-Chip Paradigm.

[15]  Jean-Marc Daveau,et al.  Automating the Design of SOCs Using Cores , 2001, IEEE Des. Test Comput..

[16]  Edward A. Lee,et al.  A framework for comparing models of computation , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[17]  Jianwen Zhu,et al.  MetaRTL: raising the abstraction level of RTL design , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[18]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[19]  Raymond Roth,et al.  A High-Level Hardware Design Methodology using C , 1999 .

[20]  Sandeep K. Shukla,et al.  Interoperability as a design issue in C++ based modeling environments , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[21]  Alberto L. Sangiovanni-Vincentelli,et al.  Platform-Based Design and Software Design Methodology for Embedded Systems , 2001, IEEE Des. Test Comput..

[22]  H. De Man,et al.  On the use of C++ for system-on-chip design , 1999, Proceedings. IEEE Computer Society Workshop on VLSI '99. System Design: Towards System-on-a-Chip Paradigm.

[23]  W. F. Dowling,et al.  Tractable Constraints in Finite Semilattices , 1996 .

[24]  Jeffrey D. Ullman,et al.  Principles Of Database And Knowledge-Base Systems , 1979 .

[25]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[26]  David Wetherall,et al.  Extending Tcl for Dynamic Object-Oriented Programming , 1995, Tcl/Tk Workshop.

[27]  Deborah Estrin,et al.  Advances in network simulation , 2000, Computer.

[28]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[29]  Kazutoshi Wakabayashi,et al.  C-based SoC design flow and EDA tools: an ASIC and system vendorperspective , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[30]  Patrick Schaumont,et al.  A programming environment for the design of complex high speed ASICs , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[31]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[32]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming, 2nd Edition , 2002, Addison-Wesley component software series.

[33]  Stan Y. Liao,et al.  YAML: a tool for hardware design visualization and capture , 2000, ISSS '00.

[34]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[35]  Nikil D. Dutt,et al.  EXPRESSION: a language for architecture exploration through compiler/simulator retargetability , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[36]  Giovanni De Micheli Hardware synthesis from C/C++ models , 1999, DATE '99.

[37]  U. Kebschull,et al.  C++ base classes for specification, simulation and partitioning of a hardware/software system , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[38]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[39]  Stan Y. Liao,et al.  An efficient implementation of reactivity for modeling hardware in the scenic design environment , 1997, DAC.

[40]  Kurt Keutzer,et al.  Fast integration of eda tools and scripting language , 2001 .

[41]  Jeffrey D. Uuman Principles of database and knowledge- base systems , 1989 .

[42]  Edward A. Lee,et al.  An Extensible Type System for Component-Based Design , 2000, TACAS.

[43]  Gabriela Nicolescu,et al.  Component-based design approach for multicore SoCs , 2002, DAC '02.

[44]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..