On the Application of Meta-Design Techniques in Hardware Design Domain

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.




References:
[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,
http://www.cs.ucr.edu/~dalton/i8051/i8051syn/
[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, http://www.free-ip.com/6502/
[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, http://www.leox.org
[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, http://hem.passagen.se/dwallner/vhdl.html
[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).