Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 30006
On the Application of Meta-Design Techniques in Hardware Design Domain

Authors: R. Damaševičius


System-level design based on high-level abstractions is becoming increasingly important in hardware and embedded system design. This paper analyzes meta-design techniques oriented at developing meta-programs and meta-models for well-understood domains. Meta-design techniques include meta-programming and meta-modeling. At the programming level of design process, metadesign means developing generic components that are usable in a wider context of application than original domain components. At the modeling level, meta-design means developing design patterns that describe general solutions to the common recurring design problems, and meta-models that describe the relationship between different types of design models and abstractions. The paper describes and evaluates the implementation of meta-design in hardware design domain using object-oriented and meta-programming techniques. The presented ideas are illustrated with a case study.

Keywords: Design patterns, meta-design, meta-modeling, metaprogramming.

Digital Object Identifier (DOI):

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF


[1] J.F. Agaësse and B. Laurent, "Virtual components application and customization", in: Proc. of Design, Automation and Test in Europe (DATE 99), Munich, Germany, March 9-12, 1999, 726-727.
[2] C. Alexander, The Timeless Way of Building. Oxford University Press, New York, 1979.
[3] S.W. Ambler, Technique Patterns: Building Large-Scale Systems Using Object Technology. Cambridge University Press, 1998.
[4] C. Atkinson and T. K├╝hne, "The Role of Metamodeling in MDA", International Workshop in Software Model Engineering (in conjunction with UML -02), Dresden, Germany, October 2002.
[5] L. Baker, P. Clemente, B. Cohen, L. Permenter, B. Purves, and P. Salmon, "Foundational concepts for model driven system design", Technical paper, Vitech Corporation, 1997.
[6] R.R. Barton, "Metamodeling: a state of the art review", in: Proc. of the 1994 Winter Simulation Conference, Lake Buena Vista, FL, USA, 1994, 237-244.
[7] D. Batory, "Product-line architectures", Smalltalk and Java in Industry and Practical Training, Erfurt, Germany, 1998, 1-12.
[8] D. Batory, R.E. Lopez-Herrejon, J.-P. Martin, "Generating product-lines of product families", in: 17th IEEE Conference on Automated Software Engineering (ASE 2002), 23-27 September, 2002, Edinburgh, Scotland, UK, 81-92.
[9] D. Batory, S. Dasari, B., Geraci, V. Singhal, M. Sirkin, and J. Thomas, "Achieving reuse with software system generators", IEEE Software, September 1995, 89-94.
[10] M. Becker, "Generic components: a symbiosis of paradigms", in: G. Butler and S. Jarzabek (Eds.), Generative and Component-Based Software Engineering, 2nd Int. Symposium, GCSE 2000, Erfurt, Germany, October 9-12, 2000, LNCS 2177, Springer, 100-113.
[11] J. Bezivin, N. Farcet, J.-M. Jezequel, B. Langlois, and D. Pollet, "Reflective model driven engineering", in: P. Stevens, J. Whittle, and G. Booch (eds.), Proc. of the 6th Int Conference on The Unified Modeling Language - Modeling Languages and Applications (UML 2003), October 20-22, 2003, San Francisco, CA, USA, Lecture Notes in Computer Science, 2863, Springer, 175-189.
[12] G. Booch, I. Jacobson, J. Rumbaugh, and J. Rumbaugh, The Unified Modeling Language User Guide. Addison-Wesley, 1998.
[13] L.P. Carloni, F. De Bernardinis, A. Sangiovanni-Vincentelli, and M. Sgroi, "The art and science of integrated systems design", in: Proc. of 28th European Solid-State Circuits Conference (ESSCIRC 2002), 2002, Florence, Italy, 25-36.
[14] J.K. Cross and D.C. Schmidt, "Meta-programming techniques for distributed real-time and embedded systems", in: Proc. of 7th IEEE Int. Workshop on Object-Oriented Real-Time Dependable Systems, January 7-9, 2002, San Diego, CA, USA, 3-10.
[15] K. Czarnecki and U. Eisenecker, Generative Programming: Methods, Tools and Applications, Addison-Wesley, 2001.
[16] K. Czarnecki and U.W. Eisenecker, "Separating the configuration aspect to support architecture evolution", in: Proc. of 14th European Conference on Object-Oriented Programming (ECOOP-2000), Int. Workshop on Aspects and Dimensions of Concerns, Cannes, France, June 11-12, 2000.
[17] R. Damaševičius and V. Štuikys, "Wrapping of soft IPs for interfacebased design using heterogeneous metaprogramming". INFORMATICA, 14 (1), 3-18, Lithuanian Academy of Sciences, Vilnius, 2003.
[18] R. Damaševičius, G. Majauskas, and V. Štuikys, "Application of design patterns for hardware design", in: Proc. of 40th Design Automation Conference (DAC 2003), 2-6 June, 2003, Anaheim, CA, USA, 48-53.
[19] R. Damaševičius and V. Štuikys. "Application of UML for Hardware Design Based on Design Process Model", in: Proc. of Asia South Pacific Design Automation Conference (ASP-DAC 2004), January 27-30, 2004, Yokohama, Japan, pp. 244-249. IEEE.
[20] S. Djokic, G. Succi, W. Pedrycz, and M. Mintchev, "Meta Analysis - a Method of Combining Empirical Results and its Application in Object- Oriented Software Systems", Proc. of the 7th Int. Conference on Object- Oriented Information Systems, Calgary, Alberta, August 2001.
[21] P. Donohoe (Ed.), Software Product Lines: Experience and Research Directions, Kluwer Academic Publisher, Boston, 2000.
[22] F. Doucet and R.K. Gupta, "Microelectronic System-on-Chip modeling using objects and their relationships", in: Online Symposium for Electrical Engineers (OSEE 2000).
[23] B.P. Douglass, "Fine grained patterns for real-time systems", in: L. Lavagno, G. Martin, and B. Selic (eds.), UML for Real, 149-170. Kluwer Academic Publishers, Boston, 2003.
[24] C. Dumoulin, P. Boulet, J. Dekeyser, and P. Marquet, "MDA for SoC Design, intensive signal processing experiment", in: Forum on Design Languages (FDL'03), Frankfurt am Main, Germany, 2003.
[25] L. Entrena, C. Lopez, and E. Olias, "Automatic generation of fault tolerant VHDL designs in RTL", in: Forum on Design Languages (FDL-2001), Lyon, France, 2001.
[26] A. Evans, R. France, K. Lano, and B. Rumpe, "Meta-modeling Semantics of UML", in: H. Kilov (ed.), Behavioural Specifications for Businesses and Systems. Kluwer Academic Publishers, 1999.
[27] U. Fayyad, G.G. Grinstein, and A. Wierse (eds.), "Information Visualization in Data Mining and Knowledge Discovery", in: U. Fayyad, G.G. Grinstein, and A. Wierse (eds.). Information Visualization in Data Mining and Knowledge Discovery. Morgan Kaufman, London/San Francisco, 2002.
[28] J.M. Fernandes, R.J. Machado, and H.D. Santos, "Modeling industrial embedded systems with UML", in: Proc. of 8th IEEE/IFIP/ACM Int. Workshop on Hardware/Software Co-Design (CODES'2000), 2000, San Diego, CA, USA, 18-23.
[29] G. Fischer and E. Giaccardi, "Meta-Design: A Framework for the Future of End-User Development", in Lieberman, H., Patern├▓, F., and Wulf, V. (Eds), End User Development - Empowering People to Flexibly Employ Advanced Information and Communication Technology, Kluwer Academic Publishers, Dordrecht, The Netherlands, 2004.
[30] G. Fischer and E. Scharff, "Meta-DesignÔÇöDesign for Designers", Proc. of 3rd Int. Conference on Designing Interactive Systems (DIS 2000), New York, pp. 396-405.
[31] E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
[32] J.P. van Gigch, System Design Modeling and Metamodeling, Plenum Press, New York, 1991.
[33] T. Givargis, 2000. Intel 8051 micro-controller,
[34] G. de Jong, "A UML-based design methodology for real-time and embedded systems", in: Proc. of Design Automation and Test in Europe (DATE 2002), 4-8 March, 2002, Paris, France, 776-778.
[35] D. Kafura, Object-Oriented Software Design and Construction with C++, Prentice Hall, 1997.
[36] K.C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, and M. Huh, "FORM: A feature-oriented reuse method with domain-specific architectures". Annals of Software Engineering, 5, 1998, 143-168.
[37] A.S. Karrer and W. Scacchi, "Meta-Environments For Software Production", International Journal of Software Engineering and Knowledge Engineering, Vol. 3(1), 1993, pp. 139-162.
[38] D. Kessner, 1999. Free-6502 core,
[39] K. Keutzer, S. Malik, A.R. Newton, J.M. Rabaey, and A. Sangiovanni- Vincentelli, "System level de-sign: orthogonalization of concerns and platform-based design", IEEE Trans. on CAD of ICs and Systems, 19 (12), 2000, 1523-1543.
[40] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.- M. Loingtier, and J. Irwin, "Aspect-oriented programming", Proc. of the European Conference on Object-Oriented Programming (ECOOP-1997). Lecture Notes in Computer Science, 1241, Springer- Verlag, 220-242.
[41] H. K├╝hn, and M. Murzek, "Interoperability Issues in Metamodelling Platforms", in: Proc. of the 1st Int. Conf. on Interoperability of Enterprise Software and Applications (INTEROP-ESA'05), Geneva, Switzerland, February 2005, Springer Verlag.
[42] J. de Lara, H. Vangheluwe, and M. Alfonseca, "Meta-modelling and graph grammars for multi-paradigm modelling in AtoM", Software and Systems Modeling 3(3), Aug 2004, pp. 194-209.
[43] L. Lavagno, G. Martin, and B. Selic, UML for Real. Kluwer Academic Publishers, Boston, 2003.
[44] E.A. Lee and A. Sangiovanni-Vincentelli, "A framework for comparing models of computation", IEEE Transactions on CAD, 17 (12), 1998, 1217-1229.
[45] LEOX Team, 2001. DRAGONFLY micro-core,
[46] B. Liccardi, T. Maier-Komor, J.A. Oswald, M. Elkotob, and G. Färber, "A meta-modeling concept for embedded RT-systems design", in: 14th Euromicro Conference on Real-Time Systems, 19-21 June, 2002, Vienna, Austria.
[47] W. Löwe and M. Noga, "Metaprogramming applied to web component deployment", Electronic Notes in Theoretical Computer Science, 65(4), 2002.
[48] A. Ludwig and D. Heuzerouth, "Metaprogramming in the large", in: G. Butler and S. Jarzabek (Eds.), Generative and Component-Based Software Engineering. Lecture Notes in Computer Science, 2177, 178- 187. Springer, 2001.
[49] G. Martin, "UML for embedded systems specification and design: motivation and overview", in: Proc. of Design, Automation and Test in Europe (DATE-2002), March 4-8, 2002, Paris, France, 773-775.
[50] S. Meguerdichian, F. Koushanfar, A. Mogre, D. Petranovic, and M. Potkonjak, "MetaCores: design and optimization techniques", in: Proc. of Design Automation Conference (DAC-2001), June 18-22, 2001, Las Vegas, Nevada, USA, 585-590.
[51] A. Mihal, C. Kulkarni, C. Sauer, K. Vissers, M. Moskewicz, M. Tsai, N. Shah, S. Weber, Y. Jin, K. Keutzer, S. Malik, "A Disciplined Approach to the Development of Architectural Platforms". IEEE Design and Test of Computers, 19, 2-12, 2002.
[52] D. de Niz and R. Rajkumar, "Model-based embedded real-time software development", in: 10th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2003), Workshop on Model-Driven Embedded Systems (MDES 2003), May 27-30, 2003, Washington DC, USA.
[53] Object Management Group (OMG), 2001. Model-Driven Architecture: A Technical Perspective. Technical Document.
[54] H. Ossher and P. Tarr, "Multi-Dimentional Separation of Concerns and the Hyperspace Approach", in: Software Architectures and Component Technology: The State of the Art in Software Development, M. Aksit, Ed., Kluwer Academic Publishers, Boston, 2001.
[55] M.J. Pont and M.P. Banner, "Designing embedded systems using patterns: a case study", Journal of Systems and Software, 71(3), 201- 213, 2004.
[56] A. Rajawat, M. Balakrishnan, and A. Kumar, "Interface synthesis: issues and approaches", in: Proc. of the 13th Int. Conference on VLSI Design, January 3-7, 2000, Calcutta, India, 92-97.
[57] D. Riehle and H. Zellighoven, "Understanding and using patterns in software development", Theory and Practice of Object Systems, 2 (1), 3- 13, 1996.
[58] J. Rowson and A. Sangiovanni-Vincentelli, "Interface-based design", in: Proc. of the 34th Design Automation Conference (DAC 97), June 9-13, 1997, Anaheim, CA, USA, 178-183.
[59] A. Ryman, "Requirements for a metaprogramming language", Presentation at the 24th meeting of IFIP Working Group 2.4, Kingston, Canada, 1990.
[60] A. Sangiovanni-Vincentelli and G. Martin, "A vision for embedded systems: platform-based design and software methodology", IEEE Design and Test of Computers, 18 (6), 23-33, 2001.
[61] B. Selic, "Architectural patterns for real-time systems", in: L. Lavagno, G. Martin, and B. Selic (eds.), UML for Real, 171-188. Kluwer Academic Publishers, Boston, 2003.
[62] Semiconductor Industry Association, The International Technology Roadmap for Semiconductors, 2001.
[63] T. Sheard, "Accomplishments and research challenges in metaprogramming", in: 2nd Int. Workshop on Semantics, Application, and Implementation of Program Generation (SAIG-2001), Florence, Italy. Lecture Notes in Computer Science, 2196, 2-44, 2001.
[64] V. Štuikys and R. Damaševičius, "Metaprogramming techniques for designing embedded components for ambient intelligence", in T. Basten, M. Geilen, and H. de Groot (eds.), Ambient Intelligence: Impact on Embedded System Design. Kluwer Academic Publishers, Boston, 2003, pp. 229-250.
[65] V. Štuikys, R. Damaševičius, and G. Ziberkas, "Open PROMOL: An Experimental Language for Target Program Modification", in: A. Mignotte, E. Villar, and L. Horobin (eds.), System on Chip Design Languages. Kluwer Academic Publishers, 2002.
[66] P.D. Terry, Compilers and Compiler Generators: An Introduction with C++. International Thomson Computer Press, 1997.
[67] F. Vahid and T. Givargis, Embedded System Design: A Unified Hardware/Software Introduction. John Wiley & Sons, 2002.
[68] T.L. Veldhuizen, "Using C++ template metaprograms". C++ Report 7(4), 36-43, 1995.
[69] D. Wallner, AX8 core, 2001,
[70] D.M. Weiss and C.T.R. Lai. Software Product-Line Engineering: A Family-Based Software Development Approach. Reading: Addison- Wesley, 1999.
[71] N. Yoshida, "Design patterns applied to object-oriented SoC design", Workshop on Synthesis and System Integration of Mixed Technologies (SASIMI 2001), 18-19 October, 2001, Nara, Japan.
[72] J. Zhu, "MetaRTL: raising the abstraction level of RTL design", in: Proc. Design Automation and Test in Europe (DATE 2001), March 13- 16, 2001, Munich, Germany, 71-76.
[73] Q. Zhu, A. Matsuda, S. Kuwamura, T. Nakata, and M. Shoji, "An objectoriented design technique for System-on-Chip using UML", in: Proc. of the 15th Int. Symposium on System Synthesis (ISSS 2002), 1-4 October, 2002, Kyoto, Japan, 249-254.
[74] J.W. Janneck and R. Esser, "Higher-order modeling and automated design-space exploration", in: Proceedings High-Performance Computing (HPC) 2002.
[75] M. Gries, "Methods for Evaluating and Covering the Design Space during Early Design Development". Integration, the VLSI Journal, Elsevier, 38(2):131-183, December 2004.
[76] R. Damaševičius and V. Štuikys, "Application of the Object-Oriented Principles for Hardware and Embedded System Design". Integration, the VLSI Journal, 2004, 38(2), pp. 309-339. Elsevier.
[77] M. Palesi and T. Givargis, "Multi-Objective Design Space Exploration Using Genetic Algorithms", in: International Workshop on Hardware/Software Codesign (CODES), Estes Park, May 2002.
[78] G. Palermo, C. Silvano and V. Zaccari, "Multi-Objective Design Space Exploration of Embedded Systems". Journal Of Embedded Computing, Vol. 1, No. 11, November 2002.
[79] D. Ikeda, S. Hirokawa and Y. Yamada, "Pattern Discovery of Genome Sequences by Substring Amplification", in: Proc. of Int. Symposium on Information Science and Electrical Engineering, pp. 637-640, November, 2003.
[80] R. Damaševičius and V. Štuikys, "Estimation of Power Consumption at Register-Transfer and Behavioral Modeling Levels Using SystemC". Submitted to Journal on Low Power Electronics (JOLPE).