Comments
Description
Transcript
UML-SoC 2005
DAC 2005 Workshop UML-SoC 2005 UML for SoC Design Anaheim Convention Center Anaheim, CA, USA June 12, 2005 edited by: Luciano Lavagno, Politecnico di Torino, Italy Wolfgang Mueller, Paderborn University, Germany UML for SoC Design Table of Contents Welcome Address from the Organizers ___________________________________III I. Keynote Address SysML and Systems Engineering Applied to UML-Based SoC Design ___________1 Y. Vanderperren, W. Dehaene, KU Leuven, Belgium II: Emerging OMG Profiles for SoCs and Embedded Systems UML Profile for System-on-Chip (SoC)____________________________________9 S. Rajan, Fujitsu Laboratories of America, USA, T. Hasegawa, M. Shoji, Q. Zhu, N. Tsuneo, Fujitsu Limited, Japan MARTE: A New OMG Profile RFP for the Modeling and Analysis of Real-Time Embedded Systems _________________________________________16 Ch. André1, S. Cuccuru2, J.-L. Dekeyser2, R. De Simone1, C. Dumoulin2, J. Forget3, Th. Gautier3, S. Gérard4, F. Mallet1, A. Radermacher4, L. Rioux5, Th. Saunier5, Y. Sorel1, 1 INRIA/I3S, 2INRIA/LIFL, 3INRIA, 4CEA–LIST, 5Thales, France III. Synthesis and Execution of UML Models Interface Problems: What We Have Here is a Failure to Communicate __________21 S. Mellor, J.R. Wolfe, C. McCausland, Mentor Graphics, USA Synthesis of UML-Models for Reconfigurable Hardware ____________________24 Ch. Dorotska, B. Steinbach, D. Fröhlich, Technische Universität Freiberg, Germany Using UML Activities for Synthesis on Reconfigurable Hardware _____________30 T. Schattkowsky, J.H. Hausmann, A. Rettberg, Paderborn University, Germany IV. Models of Computation for SoC Design On the Integration of UML Sequence Diagrams and Actor-Oriented Simulation Models ___________________________________________________34 L.S. Indrusiak, A. Thuy, M. Glesner, TU Darmstadt, Germany UML Based Modelling of Process Classes for System Level Design ____________37 A. Goel, K.D. Nguyen, A. Roychoudhury, P.S. Thiagarajan, University of Singapore, Singapore DAC Workshop, Anaheim, June 12, 2005 I II UML for SoC Design V. HW/SW Design Methodologies Design and Synthesis of Reusable Platforms with Programmable Interconnects________________________________________________________43 A.S. Basu, M. Lajolo, NEC Laboratories, USA, M. Prevostini, AlaRI, University of Lugano, Switzerland A SoC Design Flow Based on UML 2.0 and SystemC _______________________49 S. Bocchio, STMicroelectronics, E. Riccobene, Università di Milano, A. Rosti, STMicroelectronics, P. Scandurra, Università di Catania, Italy VI. Performance Analysis Based on Abstract UML Modeling Performance Analysis of Sequence Diagrams for SoC Design _________________55 A. Viehl, O. Bringmann, FZI Karlsruhe, W. Rosenstiel, University of Tübingen, Germany Embedded SW Design Exploration Using UML-based Estimation Tools ________62 M.F. da S. Oliveira, L. Brisolara, F.R. Wagner, L. Carro, Federal University of Rio Grande do Sul (UFRGS), Brazil DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Welcome Address from the Organizers UML 2.0 was finally adopted as an OMG standard in March 2005. Meanwhile it already received significant interest by a steadily increasing number of industrial and academic groups from the EDA, embedded software and hardware systems. We observe that design communities around the world have already started to apply it to System-on-Chip (SoC) designs through the last years. After the successful first SoC Design workshop at DAC 2004, this second workshop aims in continuing to be a forum to coordinate UML efforts, to initiate discussions, and to exchange experiences and information between the various groups in the SoC community. We received many interesting submissions from Asia, Europe, and North and South America again, out of which we have selected the program. An invited contribution presents the SysML profile and its application to systems engineering. Other selected contributions present System-on-Chip design with reference to the SoC profile and the upcoming MARTE profile; Models of Computation for SoC; performance analysis using abstract UML models; and HW/SW interface and reconfigurable system modeling with UML. We think that the selected presentations give a representative overview of current UML activities in SoC design and will lead to many fruitful discussions during the workshop. We hope that the workshop will identify some undiscovered existing solutions and future challenges in UML tools, applications to SoC design, and general hardware-related and embedded software aspects. Hereby, we would like to thank the Design Automation Conference, which accepted this UML workshop to be held in conjunction with DAC 2005 in Anaheim, which provided us with the organizational infrastructure. In particular, we acknowledge Ellen Sentovich, Regina Pistilli, and Kathy MacLennan for all their support and help. Special thanks go to Nanette V. Collins (NVC Marketing & Public Relations) who volunteered as a publicity chair for this workshop. Luciano Lavagno, Politecnico di Torino, Italy Wolfgang Mueller, Paderborn University, Germany DAC Workshop, Anaheim, June 12, 2005 III IV UML for SoC Design DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design SysML and Systems Engineering Applied to UML-Based SoC Design Yves Vanderperren, Wim Dehaene Katholieke Universiteit Leuven, EE Department (ESAT-MICAS) Abstract. UML is gaining increased attention as a system design language. This is confirmed by several reported experiences and current standardization activities such as the SysML initiative, which extends UML toward the Systems Engineering domain. This paper summarizes the main features of SysML and analyzes the synergies between Systems Engineering and complex SoC design using UML. In particular, the application of Requirements Engineering is illustrated in the SoC context, and suggests possible improvements to existing SoC design processes based on UML. 1 Introduction UML is attracting growing interest as a system level visual language to support the tasks of analyzing, specifying, designing, verifying and validating systemson-a-chip (SoC) [1]. Indeed UML presents the particular advantage of allowing customization for specific application domains, such as SoC design, while providing unification [2]: – across historical notations: UML 2 is the result of a long evolution from the ’method wars’, – across development life cycles: despite its primary focus at system level, UML can be used in other phases of the SoC development lifecycle, such as prototype test [3, 4], – across application domains: UML has the capability of providing a unified view of a heterogeneous SoC, – across development processes: UML can be associated with any particular design method of choice, – across design languages: several synergies between UML and existing SoC design languages at different abstraction levels have been reported in the recent years, such as UML/SystemC [5–7] or UML/VHDL [8, 9]. However the semi-formal aspect of UML and its lack of clear semantics constitute a well-known issue. Moreover, UML still has strong roots in the software domain despite its official and domain-neutral definition [10]. SysML [11] is an extension of UML which allows modeling a system from a Systems Engineering (SE) point of view. Strong similarities exist between the methods used in the DAC Workshop, Anaheim, June 12, 2005 1 2 UML for SoC Design area of SE and complex SoC design, such as the need for precise requirements management, heterogeneous system specification and simulation, system validation and verification. This paper gives an overview of SysML and identifies the opportunities to improve UML-based SoC development processes with the successful experiences from the SE discipline. 2 SysML: UML for Systems Engineering The Systems Modeling Language (SysML) is the result of a joint initiative of OMG and the International Council on Systems Engineering (INCOSE). SysML is a (draft) profile extending the UML 2.0 Superstructure Specification and provides a standard modeling language to support the specification, analysis, design, verification and validation of a broad range of complex systems which are not necessarily software based. SysML is based on the minimal subset of UML that satisfies the needs of systems engineers, and adapts UML only when it is necessary. One of the major improvements SysML brings to UML is the support for representing requirements and relating them to the model of a system, the actual design and the test procedures. Indeed UML does not address how to trace the requirements of a system from informal specifications down to the individual design elements and test cases, although this activity is crucial. Use Cases help build up a sound understanding of the expected behavior of the system and validate the proposed architecture. However requirements are often only traced to the use cases but not to the design. Adding design rationale information capturing the reasons for design decisions made during the creation of development artifacts and linking these to the requirements helps to analyze the consequences of a requirement change. SysML therefore introduces the requirement diagram and defines several kinds of relationships for improving the requirement traceability. The purpose is not to replace the available commercial tools dedicated to this subject, but to provide a standard way of linking the requirements to the design and the test suite within UML. Requirements can be decomposed by means of the containment relationship in a similar way to that for class diagrams. The trace dependency relates derived requirements to source requirements. The system designed and the requirements are linked by a satisfaction dependency. Finally, the verification dependency associates a requirement with the test case used to verify this requirement. Requirement diagrams contribute to the rigorous transfer of specifications and related information among tools used by systems, software and hardware engineers. SysML enhances the UML diagrams used to represent the structural aspects of a system. It introduces the concept of assembly, a stereotyped class which describes a system as a structure of interconnected parts. An assembly provides a domain neutral modeling element that can be used to represent the structure of any kind of system, regardless of the nature of its components. In the context of a SoC, these components can be hardware or software based as well as analog or digital. An assembly model, the SysML version of the composite structure DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design diagram, shows the interconnection of the parts of a system and supports information flows between components, as present for example in the datapath of a heavy signal-processing oriented SoC. The concept of allocation in SysML is a more abstract form of deployment than in UML. It is defined as a design time relationship between model elements which maps a source into a target. An allocation provides the generalized capability to allocate one model element to another. For example, it can be used to link requirements and design elements, to map a behavior into the structure implementing it, or to associate a piece of software and the hardware deploying it. As a consequence, SysML abandons the use of the communication diagram. The SysML support for flows between assemblies is meant to provide an equivalent and domain-neutral modeling capability. The same argument applies to the deployment diagram. It is considered too specific to the software domain as it is limited to the deployment of software artifacts onto hardware components, while the SysML allocation provides a more flexible deployment mechanism. Finally, SysML provides several enhancements to activity diagrams. In particular the control of execution is extended such that running actions can be disabled. In UML 2 the control is limited to the determination of the moment when actions start. In SysML a behavior may not stop itself. Instead it can run until it is terminated externally. For this purpose SysML introduces control operators, i.e., behaviors which produce an output controlling the execution of other actions. These new features from SysML can be applied to SoC design [12]. SysML provides therefore a bridge between the domains of Systems Engineering, UML, and SoC design. This important point needs to be carefully understood, however: – SysML does not solve the question of the lack of semantics in UML. SysML does also not define always precise semantics for the modeling elements it introduces: although the concept of assembly allows unifying the representation of heterogeneous systems, this achievement comes at the cost of increased abstraction and weaker semantics. Abstraction is a double-edged sword since it is necessary in order to deal with increasing complexity but can cause interpretation issues. – When considering the particular aspects of complex SoCs, the ability to navigate both horizontally and vertically through the system architecture is of major importance. SysML allows the integration heterogeneous domains in a unified model at a high abstraction level. The semantic integrity of the model of a heterogeneous SoC could be ensured if future tools supporting SysML take advantage of the concept of allocation and provide facilities to navigate through the different abstraction layers into the underlying structure and functionality of the system. – SysML, like UML, is neither a methodology nor does it dictate any particular development process to be used. SysML provides systems engineers with modeling means to enhance the communication of the design intent, but it does not tell how these can be best applied within a design flow. This is DAC Workshop, Anaheim, June 12, 2005 3 4 UML for SoC Design the role of a development process, the backbone of any project based on UML/SysML. This last comment is of paramount importance and is further detailed in the remainder of this paper. Several synergies can indeed be identified between the disciplines involved in Systems Engineering, complex SoC design flows, and aspects related to the definition of a design process based on UML/SysML. 3 Systems Engineering and UML/SysML-based SoC design processes INCOSE [13] defines Systems Engineering as an ”interdisciplinary approach and means of enabling the realization of successful systems. It focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem. Systems engineering integrates all the disciplines and speciality groups into a team effort forming a structured development process which proceeds from concept to production to operation.”. This definition is analyzed in the context of SoC design in the following sections. Systems Engineering as an interdisciplinary approach. Fabless system providers generally lack expertise in designing state-of-the-art submicron VLSI circuits. On the other hand, silicon providers often do not have the global visibility and the overall system knowledge required to define a complex SoC. However, the successful construction of such systems requires a cross-functional team with system design knowledge combined with an experienced SoC design team from hardware and software domains [14]. The Essential Role of Requirements Engineering. Requirements Engineering (RE) constitutes a branch of Systems Engineering which must span the gap between the informal world of the stakeholders needs and the formal world of the system’s behavior. RE for SoC can be performed in different contexts, such as market-driven product development (ASSP) or for a specific customer (ASIC, FPGA), and leads to a particular choice of possible requirements elicitation techniques (see figure 1) [15]. Four of these techniques suit especially the domain of RE for SoC using UML/SysML. Model-driven SoC design flows, where an executable model of the system is built early in the project lifecycle using an electronic system languages (ESL), share similar principles as the prototyping requirements elicitation technique. Executable UML could support new approaches at system level, in particular for control-oriented and software-dominated embedded systems. Goal-oriented techniques [16] stress the question why a system is needed, regardless of the details of how to achieve the goals. These correspond to the services to be provided (functional concerns) as well as the required quality of these services (non functional concerns, typically throughput, execution time DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Fig. 1. Requirements Elicitation Techniques and power consumption in the SoC context). Such techniques can be applied in conjunction with approaches structuring use cases with goals [17, 18]. Structured elicitation techniques based on scenarios and mapping techniques based on data flow diagrams are supported by the behavioural diagrams available in UML/SysML and can be applied to SoC design. Scenarios generated by any of the previous techniques help to validate the SoC requirements and verifying their completeness. The object-oriented aspects of UML are actually not required at this stage, where the system is seen as a black box, and several techniques from the structured systems development and Systems Engineering methodologies are applicable. Defining requirements not only involves the task of requirements elicitation, but also the modeling of requirements, which is concerned with the efficient representation of the accumulated information. The SysML requirements diagram fills here the gap of UML. Besides the requirements definition, managing change and evolving requirements is another fundamental RE activity. This task calls for cross-compatible tools which can exploit the standard SysML traceability links between requirements as well as from requirements to design and test, in order to facilitate the analysis of the consequences of a requirement change. Requirements can not only evolve in time, but across product families as well. Platform-based designs [21, 22] can benefit substantially from the experience of RE in this domain, as they need a dedicated attention to the definition of core and differentiating requirements. Different platform instances share indeed similar requirements and architectural characteristics, but differ in certain key requirements depending on the target application. Managing inconsistencies is an essential concern when defining requirements. Viewpoint modeling [19] can be used not only as a requirements validation method, but also to organise a multi-perspective SoC development technique so that the specification process remains a coordinated effort. Viewpoints allow constructing the description of large and complex systems from different perspectives and are supported by SysML. Examples of possible applications in the DAC Workshop, Anaheim, June 12, 2005 5 6 UML for SoC Design SoC domain include the verification of a hardware-software interface, or the integration of an intellectual property (IP) block within a system. In these cases, it is essential to focus not only on specifying the functionality of the (sub)system under consideration, but also on modeling the properties of the environment and what the (sub)system should achieve in this environment. This is one of the motivations for goal oriented techniques, which decrease the emphasis on modeling information flow and system state, and concentrate instead on capturing the system’s purpose within its context. Systems Engineering and SoC Development Processes. It is crucial to adapt the development process to the particular needs of the given application domain, much the same way as UML requires customization toward the area in which it is used. In the SoC context, characterized by severe first time right requirements and exponentially increasing mask costs which prevent successive physical implementations, executable models provide a means to support iterative development processes. As an example, a customized version of the RUP [20] was applied in [14]. The importance of a system model makes SoC development processes based on UML [14, 18, 21, 23] resemble Systems Engineering processes, such as SIMILAR [24] or HARMONY [25]. As illustrated by the experience reported in [3] compared to [23], re-evaluation and continuous improvement of the development process, one of the most important phases of SIMILAR, plays a crucial role in the successful integration of UML into SoC design processes. Moreover, the reported experience indicated that 55% of the errors detected were related to inconsistencies in the specification during the analysis and modeling phase, while another 21% were discovered during to black box implementation tests based on scenarios derived from use cases. These results confirm the benefits of a clear requirements management procedure and the applicability of UML at different phases of the design flow. These SoC development processes based on UML could be improved by integrating further the requirements management as a lifecycle task running in parallel with the design and verification activities, as recommended by the underlying principles of the Requirements-Based UML (RBU) process [26]. Another aspect which deserves more attention concerns the investigation of design alternatives, as stressed in a dedicated phase of SIMILAR. This task requires the definition of clear performance and cost figures of merit, and the possibility to proceed fast with the design synthesis of the alternatives. The former might however be particularly difficult to estimate accurately at system level, in particular power related aspects, while the latter motivate programmable and reconfigurable architectures as well as improved support for automatisation. 4 Conclusions The recent advances in UML and SysML present a valuable milestone for the application of UML to modern chip design. However, it is essential to remember that SysML, like UML, only provide standard modeling means. Neither UML DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design nor SysML solve the difficulty associated with systems analysis, but they allow efficient communication between the project stakeholders. A sound development process which suits the peculiarities of SoC design is necessary to complement the use of UML/SysML for SoC design. Regardless of the specific characteristics of the particular adopted process, it is beneficial to extend SoC engineering from its focus on hardware and software technologies to an engineering discipline of system development. A multi-disciplinary approach is indeed crucial to coping with increasing product complexity and the need for reduced design time. In particular, SoC designers can capitalize on the experience accumulated in the domain of Requirements Engineering in order to improve substantially product quality and design productivity. References 1. Martin, G., Müller, W. (Eds.): UML for SoC Design. Springer, 2005. 2. Holt J.: UML for Systems Engineering. Institution of Electrical Engineers, 2004. 3. Zhu, Q., Oishi, R., Hasegawa, T., Nakata, T.: Integrating UML into SoC Design Process. Proc. Design, Automation and Test in Europe (DATE), 2005, pp. 836–837. 4. Vanderperren, Y., Dehaene. W.: UML for SoC: Added Value or Hot Topic?. Tutorial. DAK-forum, 2004. 5. Vanderperren, Y., Pauwels, M., Dehaene, W., Berna, A., Özdemir, F.: A SystemC Based System On Chip Modelling and Design Methodology. In ”SystemC: Methodologies and Applications”, Chapter 1, Mueller, W., Rosenstiel, W., Ruf, J. (Eds.), Kluwer Academic Publishers, 2003. 6. Baresi, L., Bruschi, F., Di Nitto, E., Sciuto, D.: SystemC Code Generation from UML Models. In ”System Specification & Design Languages”, Chapter 13. Kluwer Academic Publishers, 2003. 7. Nguyen, K.D., Sun, Z., Thiagarajan, P.S.: Model-Driven SoC Design Via Executable UML to SystemC. Proc IEEE International Real-time Systems Symposium (RTSS), 2004. 8. Björklund, D., Lilius, J.: From UML Behavioral Descriptions to Efficient Synthesizable VHDL. Proc. IEEE Norchip Conference, 2002. 9. McUmber, W.E., Cheng, B.H.C.: UML-Based Analysis of Embedded Systems Using a Mapping to VHDL. Proc. IEEE International Symposium on High-Assurance Systems Engineering (HASE), 1999, pp. 56-63. 10. OMG: UML 2.0 Infrastructure Specification. http://www.omg.org. 11. SysML Forum: SysML Specification (Draft), 2005. http://www.sysml.org 12. Vanderperren, Y., Dehaene, W.: UML 2 and SysML: An Approach to Deal with Complexity in SoC/NoC Design. Proc. of the conference on Design, Automation and Test in Europe (DATE), 2005, pp. 716–717. 13. INCOSE: What is Systems Engineering? http://www.incose.org 14. Vanderperren, Y., Sonck, G., Van Oostende, P., Pauwels, M., Dehaene W., Moore T.: A Design Methodology for the Development of a Complex System-on-Chip Using UML and Executable System Models. Proc. Forum on Specification and Design Languages (FDL), 2002. 15. Darke, P., Shanks, G.: User Viewpoint Modelling: Understanding and Representing User Viewpoints During Requirements Definition. Information Systems Journal, 7:3, 1997. DAC Workshop, Anaheim, June 12, 2005 7 8 UML for SoC Design 16. van Lamsweerde, A.: Goal-Oriented Requirements Engineering: A Guided Tour. Proc. 5th IEEE International Symposium on Requirements Engineering, 2001, pp. 249-263. 17. Cockburn, A.: Use Cases, Ten Years Later. Software Testing and Quality Engineering Magazine (STQE), 4:2, 2002, pp. 37-40. 18. Vanderperren, Y., Dehaene, W.: A Model Driven Development Process for Low Power SoC Using UML. In [1], Chapter 10. 19. Easterbrook, S., Nuseibeh, B.: Managing Inconsistencies in an Evolving Specification. Proc. 2nd IEEE International Symposium on Requirements Engineering, 1995, pp. 48–55. 20. Kruchten, P.: The Rational Unified Process: An Introduction (3rd Ed.). AddisonWesley, 2003. 21. Green, P. N., Edwards, M. D.: Platform Modelling with UML and SystemC. Proc. Forum on Specification and Design Languages (FDL), 2002. 22. Sangiovanni-Vincentelli A., Martin, G.: Platform-Based Design and Software Design Methodology for Embedded Systems. IEEE Design and Test of Computers, 18:6, 2001, pp. 23–33. 23. Zhu, Q., Matsuda, A., Kuwamura, S., Nakata, T. , Shoji, M.: An Object-Oriented Design Process for System-on-Chip Using UML. Digest of IEEE Int. Solid-State Circuits Conf., 2002, pp. 249-254. 24. Bahill, A.T., Gissing, B.: Re-evaluating Systems Engineering Concepts Using Systems Thinking. IEEE Trans. Systems, Man, and CyberneticsPart C: Applications and Reviews, 1998, pp. 516-527. 25. Hoffmann, H.-P.: UML 2.0-Based Systems Engineering Using a Model-Driven Development Approach. I-Logix White Paper, 2004. 26. Schulz, J.: Requirements-based Unified Modeling Language. Borland White Paper, 2003. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 9 UML Profile for System-on-Chip (SoC) Sreeranga Rajan1, Takashi Hasegawa2, Minoru Shoji2, Q. Zhu2, and Nakata Tsuneo2 1 Fujitsu Laboratories of America, Sunnyvale, CA, USA [email protected] 2 Fujitsu Limited, Kawasaki, Kanagawa 211-8588, JAPAN {thasegawa,shoji.minoru,shu.kyuo,nakata.tsuneo}@jp.fujitsu.com 1 Introduction Existing UML semantics have a strong focus on software requirements specification and therefore cumbersome to use for supporting modeling and specification of SoC designs in most cases. In order to directly enable modeling and specification of SoC designs, we have developed a UML profile for SoC. The context and positioning of the profile is shown in Figure 1. The profile consists of special notations (icons) for SoC design elements, stereotypes corresponding to SoC elements, and a constraint specification associated with the stereotypes. Stereotypes corresponding to SoC elements are derived from existing UML metaclasses. SoC designers specify a design using both SoC class diagrams based on the stereotypes and SoC structure diagrams based on the special structural notation (icons) introduced by the UML profile. In this presentation, we provide an overview of our proposal on UML Profile for SoC that has recently been issued as RFC by OMG [14]. The proposal has been developed over the past two years by the UML for SoC forum that consists of three categories of expertise: 1. 2. 3. Semiconductor: Fujitsu, Toshiba, and NEC Laboratories Systems: Canon and RICOH Software: IBM (Rational), CATS, and Metabolics SoC Design Methodology SoC Modeling Profile for SoC Extension for SoC Existing Standard Figure 1: Context and Positioning of UML Profile for SoC DAC Workshop, Anaheim, June 12, 2005 10 UML for SoC Design 2 Profile for SoC: Overview of Stereotypes Each element of the SoC model corresponds to the stereotyped UML metaclasses as shown in Table 1 and Figure 2. The stereotypes may be associated with constraints described using OCL. In this Section we provide a brief description for each SoC element. 1. Data is the target of communication between modules. 2. Controller class’ member function is the module’s process. 3. Module is the base class for describing SoC hierarchy; it may own channels/other modules. 4. Port defines the protocol interface used for communication external to modules. 5. Protocol Interface defines the communication between modules and provides an abstraction for the method of communication. 6. Channel element corresponds to structures used for handling information transfer. 7. Connector links a member module’s port and a channel, or a port of another module and a member module’s port. 8. Protocol describes the relationship between protocol interface and channel. 9. Process is a member function of the module that describes its behavior. 10. Module Part (sub-module) is a kind of property (part) typed by the module class. 11. Channel Part is a kind of property (part) typed by the channel class. 12. Clock and Reset Ports are inherited from port. 13. Clock Channel is a property (part) defining the channel instance that transmits the execution events to synchronous processes. 14. Reset Channel is a property (part) defining the channel instance that transmits the reset events to processes. 15. Data Type is an extension of UML dependency, pointing to Data class. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 11 SoC Model element Stereotype UML metaclass Data Data Class Controller Controller Class Module SoCModule Class Port SoCPort Port/Class Protocol Interface SoCInterface Interface Channel SoCChannel Class Connector SoCConnector Connector Protocol SoCProtocol Collaboration Process SoCProcess Operation Module Part SoCModuleProperty Property Channel Part SoCChannelProperty Property Clock Port SoCClock Port Reset Port SoCReset Port Clock Channel SoCClockChannel Property Reset Channel SoCResetChannel Property Data Type SoCDataType Dependency Table 1: SoC model elements, Stereotypes, and their corresponding UML Metaclasses DAC Workshop, Anaheim, June 12, 2005 12 UML for SoC Design Figure 2: System Description using Component Diagrams DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 3 Profile for SoC: Overview of Structure Diagram SoC structure diagram is used to describe the structure of SoC. Special notations corresponding to SoC model elements listed in Table 1 are used in a SoC Structure diagram. An example of hierarchical module is shown in Figure 3, where the notation explicitly depicts the submodules within the hierarchy. In Figure 4, the denotation of hierarchy is by using an icon within a child module that allows one to avoid depicting submodules explicitly. Figure3: SoC Structure Diagram: Example illustrating Hierarchy: Explicit depiction of submodules Figure 4: SoC Structure Diagram: Example illustrating Hierarchy: Notation that avoids explicit depiction of submodules DAC Workshop, Anaheim, June 12, 2005 13 14 UML for SoC Design 4 Example of the Modeling using UML Profile for SoC An SoC design modeled using UML Profile for SoC can be realized by generating executable code in a language such as System C. Shown in Figure 16 is the UML class diagram. Here func() member function of user_class1 and func() member function of user_class2 are processes. And data1, data2, data3 are input/output data between the processes. In this class diagram, <<Data>> <<Controller>> stereotypes are specified. <<data>> data1 << data> > data2 <<data>> data3 << co ntroller>> use r_class1 << controlle r> > user_class2 +func(in : d ata1): data2 +func(in: data2): data3 Fig.16 Class diagram after the stereotype specified port name: in interface direction: input protocol interface name: sc_fifo_in_if<data1> initialization parameter: 0 port name: out interface direction: out protocol interface name: sc_fifo_out_if<data3> class name: parent process function: fifo:sc_fifo<data2> class name: child1 instance name: func1 process function: entry port name: in port name: out class name: child2 interface direction: output instance name:func2 interface direction: in protocol interface name: sc_fifo_out_if<data2> process function: entry protocol interface name: sc_fifo_in_if<data2> Fig. 17 Structure diagram and attribute of each object, tagged value Figure 17 shows the structure diagram wherein the necessary values and attributes are specified as notes. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 5 Conclusions and Future Work In this work we have described our proposal for UML profile for System-on-Chip (SoC) designs. This proposal has been issued as an RFC by OMG [14]. The profile will introduce a systematic model-driven methodology for designing SoCs. In the next few months, we plan to continue to work for the final adoption of this profile as a standard. References 1. OMG home page, http://www.omg.org/ 2. Jacobson, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley Toppan, 1995. 3. Q. Zhu, A. Matsuda, S. Kuwamura, T. Nakata, and M. Shoji, "An object-oriented design process for System-on-Chip using UML", Proc. of the 15 th Int. Symposium on System Synthesis (ISSS 2002), 1-4 October, Kyoto, Japan, pp. 249-254. 4. Q. Zhu, R. Oishi, T. Nakata, and T. Hasegawa, "System-On-Chip Validation using UML and CWL", ISSS+CODES 2004. 5. Q. Zhu, T. Nakata, and T. Hasegawa, "Integrating UML into the SoC Design Process", DATE 2005. 6. SystemC OSCI, http://www.systemc.org. 7. Press Release of Fujitsu Microelectronics America Inc., http://www.fujitsu.com/us/news/pr/fma_20040330-02.html. 8. G. D. Hachtel, F. Somenzi, Logic Synthesis and Verification Algorithms, Kluwer Academic Publishers, 1996. 9. S. Tasiran, Y. Yu, B. Batson, “Using a Formal Specification and a Model Checker to Monitor and Direct Simulation”, In Proc. 2003 Design Automation Conference, 40th DAC, pp. 356-361, 2003. 10. G. Graw, P. Herrmann, and H. Krumm, “Verification of UML-based real time system designs by means of cTLA”, Proc. of 3rd IEEE International Symposium on Objectoriented Real-time distributed Computing (ISORC2K), pp 86-95, 2000. 11. Press release from Fujitsu, "Fujitsu Develops New SoC Design Methodology Based on UML and C Programming Languages", http://pr.fujitsu.com/en/news/2002/04/16-2.html. 12. Press release from Fujitsu, Rational, CATS, "Fujitsu Establishes Forum Promoting UML Standards for SoC Design", http://pr.fujitsu.com/en/news/2002/11/19.html. 13. Q. Zhu, T. Nakata, and T. Hasegawa, "Integrating UML into the SoC Design Process", DAC 2004, http://www.c-lab.de/uml-soc/uml-soc04/. 14. UML Profile for SoC, draft RFC http://www.omg.org/cgi-bin/doc?realtime/200504-12. DAC Workshop, Anaheim, June 12, 2005 15 16 UML for SoC Design MARTE: a new OMG profile RFP for the Modeling and Analysis of Real-Time Embedded Systems Charles André1 , Arnaud Cuccuru2 , Jean-Luc Dekeyser2 , Robert De Simone1 , Cédric Dumoulin2 , Julien Forget, Thierry Gautier3 , Sébastien Gérard4, Frédéric Mallet1 , Ansgar Radermacher4 , Laurent Rioux5 , Thierry Saunier5 , and Yves Sorel1 1 2 INRIA/I3S – project AOSTE INRIA/LIFL – project DaRT 3 INRIA – project Espresso 4 CEA – LIST 5 Thales Abstract. A new RFP invitation for an UMLTM profile on Real-Time and Embedded systems modeling and analysis (codename: MARTE) was recently voted at OMG. While of broader scope than strictly SoC design, many objectives of MARTE are highly relevant to the domain (defining time structures, concurrency and communication models, mixing control-flow and dataflow, modeling architectural platforms and adopting Y-chart approaches for allocation of application functions onto architectural resources). We describe the RFP content, stressing its relation to SoC design, as well as others connected activities in the domain, such as SysML, AADL, and UML4SoC. 1 Context The MARTE (Modeling and Analysis of Real-Time Embedded systems) RFP (Request For Proposals) [1] was voted at the OMG Technical Meeting held in Burlingame (CA) in January 2005. The proposal has been initiated from two main sources: – First, a joint French project named CARROLL/PROTES, between Thales, CEA and INRIA (basically the authors of this position paper) aiming at providing modeling elements with a fine understanding of (logical or physical) timing issues at this level; – Second, a will and a demand from the authors and the users of the previous SPT [2] (Schedulability, Performance & Time) profile to extend it and align it to the more recent UML 2.0 standard. Since the vote of the RFP, several new partners, both from academia and industry, have considered joining the initial group to submit reponses to the RFP. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design The MARTE RFP bears strong connections with other OMG standardization attempts (some already accepted as standards, some only proposed) such as SysML [3] (a general purpose systems modeling language, response to the UML for Systems Engineering RFP [4]), AADL (The SAE Architecture Analysis & Design Language [5]), and UML4SoC. The latter, also presented in this workshop [6], is now in a request for comments process (RFC [7]) issued in April 2005 and concerning an UML Ext. profile for SoC. UML4SoC focuses on the structural description of hierarchical interconnect media, and the behavioral elaboration phase of simulation model. MARTE, which addresses embedded systems in general, has a broader scope. MARTE and UML4SoC are complementary and both should be used for SOC design. 2 Overview MARTE is divided in three subparts (some would say subprofiles): – TCR (Time & Concurrent Resources) is meant to provide the ”infrastructure” notions of logical/discrete and physical/real time, and the basic concurrency and communication models relevant to the profile. It should extend in many ways the corresponding parts of the SPT profile, in particular in adding the notions of synchronous/clocked systems (with events simultaneity and well-defined priorities). – SPA (Schedulability and Performance Analysis) is rather self-explanatory. It should provide with features allowing the non-functional performance evaluation and static or dynamic scheduling policies of systems. – RTEM (Real-Time Embedded Modeling) promises to take these time information into account to provide for behavioral definitions of hierarchical models, as in state and activity diagrams for instance. It also claims for independent high-level modeling of architectural platforms, with the goal of adopting a platform-based design methodology. The two previous subprofiles provide information necessary for building optimized allocation relationships between applications and architectures. RTEM should also provide specific constructs for frequently encountered structures in real-time and embedded systems. 3 The main requirements for MARTE In this section we list the main requirements for the RFP. Some are general, others address the three subprofiles (TCR, SPA, RTEM) individually. We put emphasis on aspects we find particularly relevant to SoC design, by writing them in italics. For convenience, we keep the requirement numbers such as they appear in the RFP. The reader may access to all requirements in the original proposal [1], and may note that several emphasized points are not covered by ULM4SoC. DAC Workshop, Anaheim, June 12, 2005 17 18 UML for SoC Design 3.1 General requirements 1) Proposals shall provide a UML profile to support modeling and analysis of real-time and embedded systems (RTES) including software and abstract hardware aspects. 2) Proposals shall allow independent extensions of the parts that support software and hardware modeling. 5) Proposals shall define the normative modeling and analysis metamodels of RTES as a basis for tool integration. 7) Proposals shall include an XMI description of the proposed profile. 3.2 Requirements for the Time, and Concurrent Resources (TCR) 10) Proposals shall support at least the following time models: Asynchronous/ Causal models, Synchronous/Clocked models, Real/Continuous time models or their equivalents. 11) In the context of synchronous time model, proposals shall define expressions for time dependencies and support the combination of simultaneous events, considering event absence and priority in behavior diagrams/models. 12) Proposals shall support a rich set of measures related to schedulability and performance, which can be expressed by statistical measures (such as average, variance, percentile values, histograms, distributions, and deterministic values). . . 15) Proposals shall define modeling entities to specify tasking models including concurrency and scheduling mechanisms. 16) Proposals shall support modeling of software deployment on heterogeneous platforms. 17) Proposals shall define a resource model to describe an abstract view of hardware architecture including active/passive elements (e.g., CPU, Memories, FIFO, etc.) and communication media (e.g., Busses, Crossbar, etc.). In addition, it shall support hierarchical models of hardware (e.g., SMP, multi-processors, etc.). 3.3 Requirements for Real-Time and Embedded Modeling (RTEM) Embedded requirements DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 18) Proposals shall support at least fully static allocation of resources to the application. That is, the application is completely known before its execution in real-time and its processing does not depend on the values of the data it consumes. 19) Proposals shall define specific QoS (i.e., non-functional requirements) of systems related to both their real-time constraints (e.g., deadline, ready time, period, etc.) and their embedded constraints (e.g., power consumption, program size, data size, memory size, number of processors, etc.). Behavior requirements 20) Proposals shall provide the means to specify computation models in relation to a specific time model for both data-flow (e.g., SDF [8], KPN [9], Dataflow Procedure Language [10]) and control-flow (e.g., state-machine modeling, discrete event systems). . . 21) Proposals shall provide the means to express concomitant use of data flow and control flow models and their interactions. 22) Proposals shall support deterministic behavior modeling of RTES. Determinism is an important property to guarantee unambiguous and reproducible behaviors, so that models can be fully trusted as a formal basis for analysis, implementation, etc. Structure requirements 23) Proposals shall define high-level modeling constructs for factorization of repetitive structures for both hardware and software and their allocation. Proposals should not make any assumption on how the factorized structure will be implemented or executed (sequential, parallel, etc.). 24) Proposals shall support modeling allocation of software capabilities to an abstract view of the hardware for RTE applications. . . 25) Proposals shall support component-based modeling for RTES hardware architectures. 3.4 Requirements for Schedulability and Performance Analysis (SPA) 30) Proposals shall support modeling of timed-utility functions which describe the cost of delay and the relative importance or urgency of responses (if this is different from priority). DAC Workshop, Anaheim, June 12, 2005 19 20 UML for SoC Design 31) Proposals shall support analysis of component-based models, by attaching performance and schedulability measures to services offered or required at interfaces/ports. 4 Perspectives Now that the MARTE RFP is accepted as RFP at OMG, we are in a stage similar to when a Call for Paper is issued for a (prestigious) conference, with a precise focused topic. It is our hope that as many people as possible with a true interest in the field, including academics, industrials, and tool vendors, will gather around the response proposal, to make it complete, simple and useful. References 1. OMG: UML profile for Modeling and Analysis of Real-Time and Embedded Systems (MARTE) RFP. OMG Document – realtime/05-02-03 (2005) 2. OMG: UML Profile for Schedulability, Performance, and Time. Version 1.1 OMG Document – formal/05-01-02 (2005) 3. SysML Partners: Systems Modeling Language (SysML) Specification. (Updated SysML revised submission) OMG Document – ad/05-01-03 (2005) 4. OMG: UML for Systems Engineering RFP. OMG Document – ad/03-03-41 (2003) 5. SAE Standards: Architecture Analysis & Design Language (Aadl). SAE Document – AS5506 (2004) 6. T. Hasegawa, S.P. Rajan. Introduction to the new standard of UML4SOC. DAC 2005 Workshop, Anaheim (CA) (2005) 7. OMG: A UML Profile for SoC RFC Submission. OMG Document – realtime/0504-12 (2005) 8. E. A. Lee and D. G. Messerschmitt. Synchronous Data Flow. Proceedings of the IEEE, vol 75 (1987) 9. G. Kahn. The semantics of a simple language for parallel programming. In J. L. Rosenfeld, editor, Information Processing 74. Proc. IFIP Congress 74, IFIP, pp 471475, North Holland, Stockholm (1974) 10. J. B. Dennis, First Version of a Dataflow Procedure Language. Lecture Notes in Computer Science, Springer-Verlag, vol. 19 pp. 362-376, (1974) DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Interface Problems: What We Have Here is a Failure to Communicate Stephen J. Mellor, John R. Wolfe, Campbell McCausland Mentor Graphics, 7400 N. Oracle Road, Suite 365, Tuscon, AZ 85704 USA {Stephen_Mellor, John_Wolfe, Campbell_McCausland}@mentor.com It is typical to describe the interface between hardware and software with pointby-point connections, such as “write 0x8000 to address 0x3840 to activate the magnetron;” and “when the door opens interrupt 5 is activated.” This approach requires that each connection between hardware and software be defined, one by one, even though there is commonality in the approach taken. Using a software example, each function call takes different parameters, but all function calls are implemented in the same way. At present, two teams of developers (hardware and software) must construct each interface by hand, both at specification and implementation time. Only convention and repeated review enforce agreement between the two halves of the specification. This is an invitation to a failure to communicate. We must separate the kinds of interface (making function calls) from each interface (the parameters for each call) and apply the kinds of interface automatically like a compiler. 1 Capturing the Design: xtUML We assume the existence of an executable (UML) modeling language. The language must be defined so that models produced in the language can be stored completely in some formalism. A model of that formalism (i.e. the language) is called a metamodel. The language must be defined so that it does not presume an implementation. Hence, sets (represented as classes) can be used to define required data, since sets can be translated into lists, arrays, etc. Similarly, a state machine can be used to define behavior, so long as it can be translated into an arbitrary implementation, hardware or software. Examples of such translations follow. One such language is Executable Translatable UML, xtUML [1]. There is a single model for the system-on-a-chip (SoC) incorporating both hardware and software. There is no possibility of a failure to communicate between hardware and software teams because there is only one implementation-free model. DAC Workshop, Anaheim, June 12, 2005 21 22 UML for SoC Design 2 Rules and Rule Languages If we assume a metamodel populated with types from the developer’s application model, we can write rules against it that produce text that can be compiled into software and silicon. One rule might take a set and produce a class declaration. Different rules could produce a struct for a C program or a VHDL entity. Similarly, we may define rules that turn state machines into arrays, lists, switch statements, etc. These rules let us separate the application from the architecture. The xtUML model captures the problem domain graphically in UML, and represents it in the metamodel. The rules read the application as stored in the metamodel and turn that into an SoC. A collection of rules and supporting mechanisms is called a model compiler, which encapsulates the architecture of the generated system. For example, a model compiler for an object-oriented architecture will likely translate each UML class to a C++ class or a C struct, with each associated UML attribute being translated to a data member of the class or a member of the struct. For hardware implementations, we could translate each UML class into a collection of registers, one for each attribute in the class. Each state machine of the application model could be mapped to a VHDL case statement. There are, of course, many other possible implementations. UML classes can be mapped into blocks of RAM, and state machines can be translated into a data-driven and gate-conservative dispatcher. The interfaces between hardware and software are just a part of the architecture encapsulated within the model compiler. Suppose there are two UML classes in a microwave oven called CookingStep and Oven, where CookingStep is translated to software and Oven is translated to hardware. In this case, the hardware architecture for Oven is a collection of memory-mapped registers. The generated interface for an action in CookingStep that accesses an attribute of Oven is then a simple memory access of the address allocated for the register in question. In a slightly different hardware architecture, the UML class Oven is mapped to only two addresses, one representing a control register and one for a data register. Accesses to attributes of the class would then be accomplished by writing the attribute identifier and the type of access (read or write) to the control register and then manipulating the data register accordingly (reading it after writing to the control register or writing it before writing to the control register). 2.1 Communication The interface between the hardware and software is defined by the model compiler. The model compiler has sufficient information to generate the interface between hardware and software, and will do so correctly, every time, without succumbing to the ambiguities of a natural language specification. Because the implementation is generated, there can be no interface mismatches, and because we no longer have two separate teams of people working from a natural-language interface specification, the generated implementation is guaranteed to have exactly zero interface problems. (This does have the unfortunate side effect of reducing the number of opportunities DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design for logic designers and software engineers to spend long nights together in the integration lab fixing interface problems.) The existence of automated tools to cause the generation of the system with interfaces known to be correct completely removes any interface problems that can lead to a failure to integrate the system and removes any possibility of failure to communicate. References 1. Mellor, Stephen and Balcer, Marc: Executable UML: A Foundation for Model-Driven Architecture, Addison-Wesley, 2002. DAC Workshop, Anaheim, June 12, 2005 23 24 UML for SoC Design Synthesis of UML-Models for Reconfigurable Hardware Christina Dorotska, Bernd Steinbach, and Dominik Fröhlich Technische Universität Freiberg Institute of Computer Science Germany Abstract. The Unified Modeling Language (UML) is becoming an important competitor language for the development of hardware/software systems. The capability of transforming UML-models into hardware/software implementations is a key to this approach. While the generation of software from UML-models ist state-of-the-art, this article presents a novel approach to the direct synthesis for reconfigurable hardware. 1 Introduction Reconfigurable architectures are an important class of hardware architectures, which combines the flexibility of traditional microprocessors with the performance of customized datapaths. Systems-on-chip (SoC) is the main application of such architectures, besides high performance computing. Reconfigurable architectures enable the acceleration of the overall system whilst cutting development and manufacturing costs. Another trend in the SoC domain is the development on increasingly higher levels of abstraction and the integration of modelling technology into the development flow. In this area object-oriented system-level modelling using UML is considered a very promising promising direction. The capability of synthesizing hardware implementations as customized datapaths directly from the UMLmodels is a key technology, because it can avoid manual and error-prone translations and thereby allows for a better handling of design iterations. In order to avoid the traditional breaks in paradigms, languages and tools, and to give the designer the maximum freedom when creating system designs, hardware synthesis from object-oriented models should preserve the objectoriented properties of the design in the final implementation. In this paper we present an approach to the synthesis of UML models to customized datapaths. In contrast to current behavioral synthesis this approach supports the full implementation of object-oriented models into customized datapaths [6][7][2]. The presented approach is based on the Unified Modeling Language (UML) and a dedicated action language. UML 2.0 and the action language are used for the object-oriented system specification and design at the system level of abstraction. The approach is backed by a dedicated tool called the MOCCA compiler (Model Compiler for reconfigurable architectures). Given complete and DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design precise models of the applications design and the design and implementation platforms, MOCCA can automatically perform partitioning, estimation, and the implementation of the system into hardware/software modules. The synthesized implementation is directly executable and exploits the capabilities of the hardware architecture. A system is designed as executable and platform independent realization of the systems use-cases. This design model defines the structure and behavior of the system. System structure is defined in terms of UML classes and interfaces and their relationships, like dependency, generalization, and implementation. For concurrency specification we support active classes. System behavior is defined with operations, state-machines, and the MOCCA action language. Synchronization between concurrent control flows is supported with guarded operations. The model of computation is objects communicating through structured messages. The direct implementation of such models in hardware is problematic due to the inherent dynamics of object-oriented models, polymorphism, and the communication between objects. In the following sections we outline the key concepts of object-oriented hardware synthesis. For the lack of space we do not detail modeling, design space exploration and software generation here nor we can give a thorough discussion of an application example. For a detailed discussion of these topics and the related work the interested reader is referred to [4], [1] and [5]. 2 The Hardware/Software Interface The hardware/software interface of object-oriented implementations with reconfigurable hardware defines the life cycle and access mechanisms of objects and components realized in reconfigurable hardware. For efficiency reasons the life cycle of hardware objects is different from the life cycle of software objects. In order to avoid costly reconfigurations hardware objects are reused as much as possible. Because a true dynamic instantiation/destruction of objects is not efficiently possible in hardware, these objects are pre-instantiated at compilation time and synthesized into configuration bitstreams. The objects are dynamically allocated on demand. Object brokerage is performed by a dedicated software service. Additionally, in run-time reconfigurable systems objects and hardware configurations are dynamically bound to logic. The mechanisms for the access of objects are defined by the object interfaces. The interface of each object consists of a control interface, a data interface, and an exception interface. Control Interface The control interface allows for identification, typing, and access to the object. This interface contains the object address, type and signals for the execution of the operations provided by the object. Data Interface The data interface allows one to access the object state and to pass input/output parameters from and to objects. The interface contains the entire public state of the object and the parameters to/from services that are publicly accessible. DAC Workshop, Anaheim, June 12, 2005 25 26 UML for SoC Design Exception Interface The exception interface reflects exceptional conditions that occur in the object. Depending on the exception handling of the object the information on the position and type of exceptions is represented. The interface of each component representing a configuration bitstream comprises all interfaces of the objects accessible through the component interface. An implementation of the hardware object and component interfaces is presented in the next sections. 3 Hardware Implementation of Components Figure 1 shows a template for the implementation of UML components in hardware. The component contains the pre-implemented objects Oi . The objects O0 , ..., On+4 are accessible via the communication interface. All other objects are not directly visible outside the component. The component also contains central circuits for the generation of clock and reset signals. There may be specialized clock generators for dedicated modules, such as external ZBT RAM (zero bus turnaround random access memory) or peripheral devices. Communication Channel DC0 Communication Interface R DCM0 FPGA O1 C On O2 DC 3 RAM0 External Storage Components RAM1 OB1 OB0 On+1 On+2 On+3 External Clock Generator DC 2 Register File O0 DC 1 On+4 DC4 RAM2 Fig. 1. Hardware Component Template The presented approach can integrate pre-implemented hardware building blocks (IP) into the synthesized hardware. As illustrated in [5] IP is modeled in an implementation platform model using components, classes and interfaces. The model defines the interface of the building blocks, that can be used to establish connections between internal logic resources and external devices through the physical device interface. Required components, that are modeled in the implementation platform model, are instantiated on demand. For instance, if RAM0 was realized with ZBT RAM Bank 0, a DCM Clock (Digital Clock Manager) component is instantiated (DCM0 ) and connected to RAM0 . The adaption of the external to the local DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design interface is realized by an appropriate VHDL wrapper component. The reset and clock signals of the design are automatically generated by the model compiler. Multiple objects are clustered in a hardware configuration. The number and type of the hardware objects being clustered in a single configuration is determined either manually or automatically. For this the global message exchange of classes and their object creation/destruction characteristics is analyzed. The public interface of publicly visible objects is realized by a register file. The register file allows one to access the control, data, and exception interfaces of the respective hardware objects. Collaborating objects communicate via direct connections or object buses (OBi ). In order to minimize bus contention there may be multiple object buses in one component. Only the publicly visible objects can be instantiated by the software portion of the application. The other objects are hidden from the outside and are used as helper objects within the component. The access to an object of a given type must be independent of the object template and the dynamic object type. In order to accomplish this the public object interfaces of all objects of a given type and all of its subtypes must be identical. The realization of polymorphism is hidden behind the external object interface. 4 Hardware Implementation of Objects Figure 2 shows a template for the implementation of objects in hardware. The template shows the implementation of one object. The object contains the preimplemented operation Oi , the operation parameters Pi and the attributes Ai . The object can be of type T0 or T1 . The sets Pi and Ai comprise the data interface of the object. Operation O2 has a non-empty exception interface. For each type the visible features must be provided in the interface. The set of visible operations is a superset of the operations that are defined by a type. Model compilers automatically eliminate unused features before design space exploration. A control and type register implement the control interface. The type register holds the current dynamic type of the object. The control register contains the two signals GO and DONE for each operation. An operation is started by setting its GO signal. The end of execution is signaled by the operation when it sets its DONE signal. Operation O1 is polymorphic, that is, the executed behavior depends on the current object type. The selection of the behavior to execute is performed by a selector circuit whose implementation is depicted on the right hand side of Figure 2. Because the execution of both implementations of O1 does not necessarily require the same time, the selector must also multiplex the DONE signal. The object interface hides the execution of polymorphic behavior; that is, for the sender of a message which is handled by O1 it is not relevant which implementation of this operation is executed. Consequently both implementations of O1 share the same data interface. If both behaviors of the operations change data in their data interface, the implementations must be decoupled from the DAC Workshop, Anaheim, June 12, 2005 27 28 UML for SoC Design Ctrl GO,DONE(O GO,DONE(O 1) 0) SEL 1 O0 P 01 GO O1 A0 type(T 0 ) OE(T 0 ) P 10 OE(T 1 ) T1 O1 GO,DONE(O 2 ) A i - Attributes P j - Parameters EX k - Exceptions O2 OB Ctrl P 00 T0 Type P 20 P 21 Type DONE type(T 1 ) MUX OE(T 0) OE(T 1 ) P 22 GO DONE DONE GO T 1::O 1 T 0 ::O 1 EX 2 Implementation of SEL 1 Fig. 2. Hardware Object Template actual data by appropriate logic. If no other output enable was specified in the model the DONE signal is used. The implementation of attributes and parameters is straightforward; they are mapped to a storage component of an appropriate width. If the implementation platform contains components with appropriate interfaces, the resources modeled are used to generate the storage components. The data interface of publicly visible objects is located in the register file. Objects are connected to the data interface and other objects with direct connections or buses. This raises a synchronisation problem because multiple objects or operations may access features concurrently. Synchronization of publicly visible objects is performed in software. Concurrent accesses of proxy objects and their hardware counterparts are decoupled by the dual ported architecture of the register file. Potentially concurrent accesses to an element in the same hardware component are guarded with arbiters. 5 Hardware Implementation of Behavior The behavior of classes and operations is implemented according to the FSMD model (finite state machine with datapath) [3]. This model is especially suitable for control oriented applications, and fits the message based computing paradigm of the object based model of computation. Each behavior is constructed as controller with an attached datapath. The datapath performs the computations of the behavior, the evaluation of the conditions which control the datapath, and the components that store the inputs, outputs, and intermediate results. For the realization of the computation operations and buffers the resource services that have been allocated during design space exploration are used. The results of conditions are inputs of the controller. Scheduling of the datapath is performed and assigned to the behavior during DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design design space exploration. During implementation this schedule is then actually realized. The controller is realized as Moore FSM. Datapath operations which require at most one clock cycle are associated with one FSM state. Multi-cycle operations are associated with a number of consecutive states. Independent operations and operations that execute at most one clock cycle may be chained to execute back to back in the same cycle. Behavior implementations are not shared among different objects. Hence no synchronization of concurrent executions of the same behavior in different objects is required. To avoid write contention the datapath keeps local copies of attributes and inout-parameters. All modifications of the datapath are performed on the copies. If no explicit output enable is specified in the model, they are synchronized back at the end of execution and when the behavior executes a message transfer. 6 Conclusions In this article we have presented a novel approach to the object-oriented hardware synthesis from UML-models. This article has shown that such specifications can also be realized with reconfigurable hardware in a straightforward and convenient manner. The paradigm of message based computation can be used to generate very efficient and scalable hardware implementations. The development of highly parallel applications is encouraged. Advanced model compilers for SoC can automatically implement heterogeneous multiprocessor solutions from UML models. References 1. Thomas Beierlein, Dominik Fröhlich, and Bernd Steinbach. UML-Based Development of Applications for Run-Time Reconfigurable Architectures. In Proceedings of the UML-SOC - International Workshop on UML for SoC-Design 2004 (UMLSoC’04), June 2004. 2. John. P. Elliott. Understanding Behavioral Synthesis. Kluwer Academic Publishers, 2000. 3. Daniel D. Gajski. Principles of Digital Design. Prentice Hall Inc., 1997. 4. Bernd Steinbach, Dominik Fröhlich, and Thomas Beierlein. Languages for System Specification, chapter UML-Based Codesign for Run-Time reconfigurable Architectures, pages 5–20. Kluwer Academic Publishers, 2004. 5. Bernd Steinbach, Dominik Fröhlich, and Thomas Beierlein. UML for SoC Design, chapter Hardware/Software Codesign of Reconfigurable Architectures Using UML, pages 89–116. Kluwer Academic Publishers, 2005. 6. University Irvine, Center for Embedded Computer Systems. SPARK: High-Level Synthesis using Parallelizing Compiler Techniques. http://mesl.ucsd.edu/spark/, April 2004. 7. Xilinx Inc. Forge - compiler for high-level language design. http://www.xilinx.com/ise/advanced/forge.htm, 2003. DAC Workshop, Anaheim, June 12, 2005 29 30 UML for SoC Design Using UML Activities for Synthesis on Reconfigurable Hardware Tim Schattkowsky, Jan Hendrik Hausmann, Achim Rettberg Paderborn University, Germany 1 Introduction The Unified Modeling Language (UML) [3] has become the de-facto standard in software systems modeling. Especially with the recent additions to Components and Activities in the upcoming UML 2.0, we also see a large potential for application in hardware design. For software systems, executable UML approaches like xUML from Kennedy-Carter [4] target towards direct code generation from UML models for software systems. The comparable XTUML approach from Project Technology [2] is already moving towards generation of hardware specifications. Both approaches are fully object oriented and employ synchronous object-oriented operation calls to model system behavior (expressed by StateCharts) However, hardware systems differ in several crucial aspects from software systems. The application of UML for hardware design has to account for these differences. Unlike in software systems, the number of instances for a particular block in a hardware system is always determined. Inheritance, a fundamental concept of OO software, is usually not present in hardware systems. Finally, asynchronous data flows are essential in hardware systems and provide the coordination between concurrent blocks. This does not match with the usually synchronous behavior of object oriented systems. The token semantics provided for UML 2 Activity Diagrams are better suited to express this kind of behavior (see, e.g. [5]). Figure 1: Design Approach Overview DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 31 We present an approach on hardware systems design based on interconnected components (see Figure 1). These components may be assembled using aggregation and composition to form a complete system. Each individual component may provide and require several interfaces and its behavior is specified in terms of UML 2.0 activities. Component types are defined using Class Diagrams. Thus, the whole design approach only relies on Class, Component and Activity Diagrams. The resulting design models can be used to directly generate Handel-C code for hardware synthesis. 2 System Specification System ComponentA AnActiv ity «delegate» ComponentB «delegate» «delegate» SubComponent ComponentC Figure 2: System Description using Component Diagrams We employ a subset of UML Class Diagrams to provide type definitions for blocks of synchronous logic. Components in our approach are instances of these classes defined by their exposed interfaces. Each such block type is a special type of active class where the class behavior is defined through a single private activity. This activity may call sub-activities on the same class. The complete system is assembled from components through composition or aggregation. As dynamic instantiation is not possible in hardware, the concrete assembly of a particular System on Chip (SoC) has to be determined at the design time. This is described in our approach using a Component Diagram (see Figure 2). Each component may expose required and provided interfaces. The behavior of each component is specified as a UML Activity Diagram. Thus, the interfaces are defined by the input and output parameters of these activities, which define typed token flows at the model level and are comparable to electrical interconnects for typed data. However, the token types are limited to primitive types (e.g., integer numbers) and records composed from those types. Additionally, interfaces may expose attributes which are equivalent to registers. DAC Workshop, Anaheim, June 12, 2005 32 UML for SoC Design AnActiv ity Action1 Action3 RequiredInterface ProvidedInterface1 Action2 Action4 Implicit Replication SubActiv ity ProvidedInterface2 Figure 3: Activity Diagram mapping Pins to required and provided Interfaces UML Activity Diagrams (ADs) represent activities and model behavior in terms of data and control tokens flowing between executable nodes (see Figure 3 for an example). Input and output pins describe the incoming and outgoing tokens for each executable node. Such an executable node may be a single action (e.g., reading a value or evaluating an expression) or a complete nested activity. Actions are the basic units of computation used in an activity. Actions can execute whenever their inputs are available. During execution, an action produces a set of tokens on its output pins. Actions can also encapsulate more complex behavior, i.e., they can represent the execution of nested components. This allows for a stepwise development of new components as well as for the integration of existing blocks. UML 2.0 introduces the concept of token competition where an output pin provides its token to the first connected node that can process a complete set of inputs. For hardware systems, it is more intuitive to assume the token to be replicated. This corresponds to multiple blocks connected to the same output. In UML terms, we assume an implicit fork for output pins. This assumption also enables the consistent handling of data and control tokens in our approach, especially during code generation. 3 Code Generation Celoxica Handel-C [1] is a behavior-oriented programming language for hardware synthesis that compiles directly to a Field Programmable Gate Array (FPGA). The behavior is described in C-style syntax using essentially value assignments based on registers and internal and external memory grouped by control constructs. For DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design synthesis, the program code is transformed directly into equivalent gates and flipflops (e.g., for adders, multipliers, latches) representing the expression evaluation trees and control logic. C-style flow control is achieved using conditional branches (if and switch-statements) and loops (for, do and while-statements). Handel-C code generation can be performed per component. A Handel-C function is compiled from the component using a list scheduling algorithm to transform the activity into parallel and sequential Handel-C blocks. Within these blocks, the Handel-C functions of components implementing the required interfaces may be activated by passing the respective tokens using communication channels. Thus, all components are running concurrently and only interact through the implementation of the token flows from the Activity Diagrams. The code generation for a particular activity is essentially based on resolving forks and joins to parallel and sequential blocks which contain do/while loops to implement decisions. Hierarchically nested forks and joins are mapped directly to parallel blocks. Forks and joins that break this hierarchy are implemented through explicit synchronization. 4 Conclusion & Future Work In this paper we have outlined a novel approach for model-based hardware design based on UML 2.0 Activity Diagrams for modeling behavior. The approach enables automatic code generation of synthesizable HDL for ASICs and FPGAs. Such code generation has been sketched for synthesizable Handel-C code, but it is generally not bound to a particular HDL. Future work will include the investigation of code generation of other HDLs as well as a deeper evaluation of the approach in different applications. Furthermore, the investigation of hardware/software co-design based on our approach seems to be interesting References [1] Celoxica: Handel-C language Overview, http://www.celoxica.com, 2002. [2] Mellor, S.J., Balcer, M.J.: Executable UML - A Foundation for Model-Driven Architecture. Addison-Wesley, 2002. [3] The Object Management Group: Unified Modeling Language: Superstructure. OMG ad/2004-10-02, 2004. [4] Raistrick, C., Francis, P., Wright, J.: Model Driven Architecture with Executable UML. Cambridge University Press, 2004. [5] Bock, C.: UML 2 Activity and Action Models. Journal of Object Technology, 2(4):43–53, July/August 2003. available at www.jot.fm. DAC Workshop, Anaheim, June 12, 2005 33 34 UML for SoC Design On the Integration of UML Sequence Diagrams and Actor-Oriented Simulation Models Leandro Soares Indrusiak, Andreas Thuy, Manfred Glesner Microelectronic Systems Institute – Technische Universität Darmstadt Karlstr. 15, 64283 Darmstadt, Germany {lsi, glesner}@mes.tu-darmstadt.de, [email protected] Abstract. This paper provides an overview of the ongoing work on integrating UML sequence diagrams and actor-oriented modeling and simulation frameworks. A case study using PtolemyII and its graphic interface Vergil is presented. 1 Actor orientation and UML This work aims to approach the problem of validating subsystems developed in UML together with complex application testbenches. While many approaches have been presented previously on executing UML models or generating executable code from them, the approach presented here allows the co-simulation of UML models and actor-oriented models which can represent (1) other subsystems that complement the functionality described in UML or (2) the environment where the UML-modeled system will be deployed. While both cases could be modeled completely in UML, there are many legacy models which were already implemented using actororientation. For instance, in communication engineering there are many subsystems, channel models, user mobility patterns already designed in SDL or Matlab/Simulink; and in computer enginnering, most of the legacy subsystems are designed in HDLs such as Verilog, VHDL or SystemC. As it is unrealistic to expect that new designs will not rely on previous developments and legacy subsystems, the frame of this research is to provide means for the co-validation of UML and actor-oriented models. The definition of actor-orientation considered here is that of Lee et al. [1]. The components in actor-oriented models are concurrent objects that communicate via messaging, rather than abstract data structures that interact via procedure calls (which is the picture in object-oriented programming languages). A distinct feature of actororiented models is the formalization of the concurrent behavior of model components using well defined models of computation. While many actor-oriented tools like Simulink or LabVIEW rely on a single model of computation, the PtolemyII [2] project has provided a platform for experimenting with heterogeneous models combining different models of computation. In this work, we use the PtolemyII framework to integrate UML sequence diagrams and actor oriented models. The composition of actors supported by DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 35 PtolemyII is used to allow the description of the dynamic behavior of an actor using UML. In other words, we encapsulate an UML sequence diagram within an actor. To do so, we consider each of the objects of the sequence diagram as a role that will be played by an external actor in the model. For each role, there is an interface definition that includes the methods that must be provided and required on the communication described in UML. This interface is then used to define the input and output ports of the actor. Figure 1 depicts this approach. In Figure 1a, a simple UML sequence diagram is presented. It follows the UML 2.0 notation for synchronous and asynchronous messages. Figure 1b shows the PtolemyII composite actor notation of the encapsulated UML sequence diagram of Figure 1a. Each synchronous message is modeled as four ports in the actor interface: two input ports, one where the caller actor posts the message and one where the callee posts the return; and two output ports, one for the callee to receive the message and one for the caller to receive the return. Similarly, asynchronous messages are modeled as two ports only, one input for the caller to post the message and one output for the callee to receive it. A B C x y Ax By Cyr Bx Cy Byr yr (a) (b) Fig. 1. UML sequence diagram and corresponding composite actor 2 Case study: PtolemyII extensions In order to integrate the actor-encapsulated UML diagram within a simulation environment, we follow PtolemyII architecture for heterogeneous composites of models of computation. The actor encapsulating the UML diagram has its own director, which schedules the incoming messages according to the UML-defined communication semantics. At present, only the data dependencies and sequences are being observed, but in the future we plan to investigate the support to real time constraints described using the UML Profile for Schedulability, Performance and Time [3]. Figures 2 and 3 show snapshots of an extended version of Vergil, the graphical user interface of PtolemyII, including a basic implementation of the presented approach. DAC Workshop, Anaheim, June 12, 2005 36 UML for SoC Design Fig. 2. Snapshot of Vergil extensions supporting UML sequence diagram Fig. 3. Snapshot of Vergil displaying actor encapsulation of UML sequence diagram from Figure 2 References 1. Edward A. Lee, Stephen Neuendorffer and Michael J. Wirthlin, "Actor-Oriented Design of Embedded Hardware and Software Systems," Journal of Circuits, Systems, and Computers, Vol. 12, No. 3 pp. 231-260, 2003 2. C. Hylands, E. A. Lee, J. Liu, X. Liu, S. Neuendorffer, Y. Xiong, H. Zheng (eds.), "Heterogeneous Concurrent Modeling and Design in Java (Volume 1: Introduction to Ptolemy II) ," TechnicalMemorandum UCB/ERL M03/27, UC Berkeley, 2003. 3. UML Profile for Schedulability, Performance and Time Specification. OMG, September 2003. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design UML based modeling of Process Classes for System Level Design Ankit Goel, K.D. Nguyen, Abhik Roychoudhury, and P.S. Thiagarajan School of Computing, National University of Singapore {ankitgoe,kathyngu,abhik,thiagu}@comp.nus.edu.sg 1 Introduction Modeling, simulation and code generation from UML notations is a viable route for pushing up the abstraction level in design of reactive embedded systems. A standard approach in this context consists of grouping behavioral entities with similar behavior into a single class, using class diagrams to capture the interconnections between the classes and specifying the behavior of a class -i.e. that of the objects grouped together into the class- with the help of state machine diagrams. In UML 2.0, the class notion is considerably expanded and in the new “structured classes” interaction relationships between the sub-classes or even specific objects of the classes can be captured by using entities such as ports, interfaces and connectors. It is however the case that the behavioral aspects of the interactions is defined implicitly, via the communication actions mentioned in the state machine diagrams associated with the classes. Protocol state machines can be used in UML 2.0 to specify the allowed access patterns of an interface. However this mechanism, bound to the ports of structured classes still has an intra-component flavor. In this paper, we present a modeling framework in which the interactions between the classes of behavioral objects are described by sequence diagrams. We take the view that interactions are naturally specified and analyzed if they have an inter-component flavor. Even a single unit of interaction between a pair of components often involves bidirectional flow of control signals, if not data. Hence we advocate the use of simple sequence diagrams -a standard UML notation- to capture the unit interactions between the classes. We note that a sequence diagram with its multiple lifelines is inherently an inter-component based behavioral description. However, the execution semantics of system descriptions must be intra-component based. In general it is quite a challenge to bridge the gap between inter-component based system descriptions and their intra-component based executions [2, 4]. It is particularly so, when instead of concrete behavioral objects one has to cope with, as we do here, classes of behavioral objects. To be more specific, we study a system description framework in which, as usual, similar behavioral objects are grouped together into classes, the behavior of a class is described by state machine diagrams and the main structural relationships between the classes are captured by class diagrams. The key new feature is, in addition, we use sequence diagrams to specify the interactions between the classes at a behavioral level. In this first stage of our work, we do not exploit the modeling features offered by structured classes. We feel however that the relevant extensions of UML2.0 can be DAC Workshop, Anaheim, June 12, 2005 37 38 UML for SoC Design achieved in the future without any disruptions to the basic framework that we have constructed. Our work is related to and strongly influenced by the Play-in-Play-out approach to system modeling and executions based on Live Sequence Charts (LSCs) [4]. There are also many other related works in the context of UML-based system design methods (see for example [6] for references) but we will assess these in more detail in the full version of the paper. 1 (Call,snd) (Call,rcv) (Rlc,rcv) 2 3 (Ring,local) (Ring,remote) 5 4 (Rlc,snd) (Busy,local) (Connected,rcv) (Connected,snd) (Busy,remote) 6 (Disconnect,snd) (Disconnect,rcv) 7 8 Fig. 1. State Diagram for Switch A (Call,_) B (Busy,calling) (Busy,called) (Ring,local) C (Ring,remote) D (Busy,called) (Busy,called) (Disconnect,snd) (Connect,remote) (Connect,local) E (Busy,called) Fig. 2. State Diagram for Phone DAC Workshop, Anaheim, June 12, 2005 (Disconnect,rcv) UML for SoC Design 2 39 Modeling and Simulation In this section, we explain the key features of our work with the help of an example. It consists of three groups of phones located in three different areas with each area containing a switch through which the users can make both local calls and also connect to phones in the other areas. The three switches are assumed to be connected to each other. There are two main classes: Switch and Phone. In the actual system as shown in Figure 3, we have three subclasses of the Switch class, namely, Switchi , i = 1, 2, 3 and similarly the phone classes P honei , i = 1, 2, 3. For convenience, we have suppressed showing the master Switch and P hone classes. Each of the classes such as P hone1 , Switch2 will contain a number of objects. Thus, the specification may contain the information that there are 20 phones in the geographical area captured by the subclass Switch2 ; however, the individual names/identities of these 20 objects in P hone2 are not maintained. sw_sw_connect sw_sw_connect ph_sw_connect Phone1 Switch1 sw_sw_connect Phone2 Switch2 Phone3 Switch3 sw_sw_connect sw_sw_connect ph_sw_connect ph_sw_connect sw_sw_connect Fig. 3. Telephone Network Class Diagram 2.1 Modeling In our setting, a class is a collection of processes with similar functionalities. Consequently, the behavior of a class is specified as a finite state machine. In general, the actions specified in the transitions will describe both the computational and communication steps. Our focus is on the interactions between the classes and hence we will suppress the computational aspects. A communication action associated with a transition will be represent a snippet of a protocol, namely, the part played by an object of the class taking part in this instance of the protocol. Each such action will be a pair of the form (transaction, role) where “transaction” is a sequence diagram together with a set of constraints collectively called the guard of the transaction, and “role” is a particular lifeline in the sequence diagram. For example, in the state machine of the class Switch shown in Figure 1, the transition from the state 1 to 3 has the communication label (call, rcv). The transaction call in turn is specified in Figure 4. DAC Workshop, Anaheim, June 12, 2005 40 UML for SoC Design We note that the “call” transaction also has a second role called “snd” which will have to be assumed by some other object of the switch class and this object will also have to be in the state 1 and will go to the state 2 when the “call” transaction executes. As this notation shows, for convenience, we have abstracted away the inner workings of a telephone switch and view its various components as simply objects belonging the Switch class. The state machine for the class P hone is shown in Figure 2. One phone object, say, ph0 will have to be in state A and two switch objects say sw-snd and sw-rcv in state 1 for the transaction call to execute. When it does so, ph0 will go to the B, sw-snd will go to the state 2 while sw-rcv will go to the state 3. Thus multiple objects belonging to the same class -possibly residing at different control state in the state diagram- will assume different roles in a transaction. Of course more than one class can contribute objects in the execution of a transaction. (phone, ) (switch,snd) (switch,rcv) offhook dialtone digits iam acm waittone Fig. 4. The Call Transaction We allow a variety of constraints to be expressed to form the guard of a transaction which decide whether a transaction is enabled for a particular assignment of objects to lifelines. They are as follows. To avoid clutter, we have not spelled out the constraints associated with the “call’ transaction shown in Figure 4. 1. History constraints specified by regular expressions which demand that for an object to play a certain role in a transaction, the sequence of control states it has gone through to reach the current control state must fall within the language of the regular expression. Such history information can also include truth values of predicates concerning the values of the local variables possessed by the object. 2. Relational constraints between the objects assuming two different roles in a transaction. These relations could be static ones such as proximity (a phone object in an area can only connect to the switch in that area) or dynamic ( for a phone object and switch to engage in the disconnect transaction, they must be currently in the “connected” relation). In addition, the messages exchanged by the lifelines of a transaction can also be parameterized with their values determined at run time by the binding of the objects to DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design the lifelines. As mentioned in the preceding, the guard of a transaction decides whether the transaction is enabled for a particular choice of objects for different lifelines. But since we do not keep track of identities of objects, what do we mean by a choice of objects ? This brings us to our notion of “behavioral subclasses” which is crucial for our execution semantics. 2.2 Simulation Our execution semantics is a symbolic one and crucially uses the notion of behavioral subclasses. We avoid representing the name space of the concrete objects unless the specification itself singles out concrete objects. Instead, we group together subclasses of objects according to their potential future behavior and often this will depend only on their past. Thus in the example shown in Figure 2, at the initial state all the objects belonging to P hone1 will reside at state A. Suppose now the transaction “call” is executed with (switch, snd) and (switch, rcv) being bound to (different objects in Switch1 and phone being bound to an object in P hone1 . As a result of the transaction, the P hone1 class will split into two behavioral subclasses: one residing at A representing all the phone objects in P hone1 which did not take part in this transaction, a second subclass representing the phone -but whose name is not kept track of- that took part in this transaction. The actual creation and merging of behavioral subclasses is more involved but this is the essence of the idea. In addition, our simulation must also keep track of the history information (but only a bounded amount) as well as the static/dynamic relationships between (behavioral) subclasses. The symbolic execution mechanism is the main distinguishing feature of our model in contrast to other works [4, 8]. In [4], the concrete identities of processes of maintained and this leads to a blow-up of the number of chart-copies, while in [8] this blow-up is reduced by maintaining constraints on the process identities. 3 Implementations SystemC Translation We have constructed a translator for a subset of our language through which designs can be automatically converted to SystemC code. This subset is quite restricted in the sense each class is assumed to consist of a finite set of concrete objects. Furthermore, only very primitive and purely static relationships can be specified between the objects that can play different roles in a transaction. One of our future goals is certainly to extend this translator to handle the full language. Experimental results obtained via this translator can be found in http://www.comp.nus.edu. sg/∼kathyngu/CTP2SystemC.pdf Customized Simulator For the full modeling language we have constructed a customized simulator and we have experimented with non-trivial examples of reactive control systems with many similar processes. For initial experiments, we modeled a simple telephone switch drawn from [5]. It consists of a network of switch objects with the network topology showing the connection between different geographical localities. Switch objects in a locality are connected to phones in that locality as well other DAC Workshop, Anaheim, June 12, 2005 41 42 UML for SoC Design switches as dictated by the network topology. Next we modeled the rail-car system whose behavioral requirements have been specified using Live Sequence Charts in [2]. This is an automated rail-car system with several cars operating on two parallel cyclic paths with several terminals. The cars run clockwise on one of the cyclic paths and anti-clockwise direction on the other. This example is a substantial sized system with a number of process classes: car, terminal, cruiser (for monitoring speed of the cars), proximity-sensor (for checking whether cars are approaching a terminal) etc. We have also modeled the requirement specification of two other systems - one drawn from the rail transportation domain and another taken from air traffic control. We now briefly describe these two systems. The automated rail-shuttle system [7] consists of various shuttles which bid for orders to transport passengers between various stations on a railway-interconnection network. The successful bidder needs to complete the order in a given time, for which it gets the payment as specified in the bid; the shuttle needs to pay the toll for the part of network it travels. If an order is delayed or not started in time, a pre-specified penalty is incurred by the responsible shuttle. The weather update controller [1] is a an important component of the Center TRACON Automation System (CTAS), automation tools developed by NASA to manage high volume of arrival air traffic at large airports. The case study involves three classes of objects: weather-aware clients, weather control panel and the controller or communications manager. The latest weather update is presented by the weather control panel to various connected clients, via the controller. This update may succeed or fail in different ways; furthermore, clients get connected/disconnected to the controller by following an elaborate protocol. For each of the above examples we have performed random/guided simulation. Detailed results of these simulations appear in the technical report [3] and the simulator can be downloaded from http://www.comp.nus.edu.sg/∼ankitgoe/ simulator. References 1. CTAS. Center TRACON automation system. http://www.ctas.arc.nasa.gov. 2. W. Damm and D. Harel. LSCs: Breathing life into message sequence charts. Formal Methods in System Design, 2001. 3. A. Goel, A. Roychoudhury, and P.S. Thiagarajan. Dynamically grouping active objects based on behavior. Technical report, National University of Singapore, 2005. http://www. comp.nus.edu.sg/∼abhik/pdf/TR-05.pdf. 4. D. Harel and R. Marelly. Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer-Verlag, 2003. 5. G.J. Holzmann. Modeling a Simple Telephone Switch, chapter 14. The SPIN Model Checker. Addison-Wesley, 2004. 6. K.D. Nguyen, Z. Sun, P.S. Thiagarajan, and W.F. Wong. Model-driven soc design via executable uml to systemc. In The 25th IEEE International Real-Time Systems Symposium. IEEE Press, 2004. New rail-technology Paderborn. http://wwwcs. 7. Shuttle Control System. uni-paderborn.de/cs/ag-schaefer/CaseStudies/ShuttleSystem. 8. T. Wang, A. Roychoudhury, R.H.C. Yap, and S.C. Choudhary. Symbolic execution of behavioral requirements. In Practical Appl. of Declarative Languages (PADL), LNCS 3057, 2004. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design !#"%$&"'(*),+- . /$0)1**)1+2+3!#"4657)189 #8: ;<>=(<>?>=A@CB>=(<EDF=HGI:=KJMLONQP>RS=HGUT4V4WXWZYA[\=(]^YHWXY_NQP>=H<>?RS=(LEGUYa`,GUV4bKYKJMcedX<EdXf gA h:iyzjlkm4knzmpMoC~KqpzrMms^tvqpr^uUtvr^uxwwztsyz{|qp\uUknr^tvK}/m(~_m4qKr^~tvkn}xKues^qQm4AqKh:~C|(,Q ts^xuU(r^~_m49_Hy w4tvrMompv{|u xx{K ¡_uxmpw¢poKtvQpvu£ #w7qQ}e©Kvm4HqQss^tv¤t}xq4qpuxr^w{¥w\tvmp#o_oKm4qpvwu rMu/Ks^'q:uerH}xuxqps^wqaªCtvQu {¦,m4r^tux¬s^§(©¦u|Ks^tts©Kr^uxu ªCwO}xqQs^Hwqzwrtvr^r^ouxuxvFw¨ussr^s^}xtvqa}UqQs{|}xs^qQªK©K{|vu uUu|H(tvsK{¦9ªqpoC,EuUrO(ts^Hq4©#Cw¨s^ªCªKuxr^qQ{®qpw¨««« s^qp¯ ©KqpHuzp«¨¶j|m4©K}U{¦stvª±s^w¨©°²s\(m4ªKs,qFr^j1m4q*³9(tKueK·Euxu,wuxtvm9}Ups^wtvªCwxuµ´nux}xh:i7t»q/vux}¼1}UwsmpKr^qpªmxªCHtvq4wµ}rs^s\(©HXuUqpw¨r^rs^u®uxª{¸tvwm4knsm XuUqppr^uxux{½ue°¹wrMiºªCmpKux }xkO}Ut»_³\qQ}/Kmwuxs^uUwtvtvqQpwn ~(wµ{|©s^m4uUq/rMs^(©K1m4q(rMHm4 «« r^s^uq ¾mpwqpvvZq/s¿1m4Hr^uxu¦wtvª_QmKruUs^r^tvs^wµtvqps^q tvueKªKm4vqQ_tsµªHs^©r^qQupªCrMm4qp{|s^uU{(s^m4tm4s^tv}9w9tvq4Fs^uUw¨sMrm¶m4s^}xuUux«²qpw¼Xw¨«¹s^K©KFuUs^«©Km4uxrwsµtvw¼s^uxtvA}M©q4KrMqQKvuUqpr« poKtuUtvwx´CKtvÀs^©KKtvuUw¼Â qpm4r^r^¬ }M© ts^uux}eªKs^r^KuxrMwmpuxzFs:ªm®m4s{|XqpuUr^s^{|©w|q(Hs^qQqvqQoC4ua Ks^©wu/m4±szvtvuxÃuUs^rM©m4uaQuxw¨wzHw¨qQs^Aux{µÁAHuxkwtv¤Qqp r ªHªKr^ZmqFs}x¤uxq4wr^wx{|´wµÄoFuµw©mQq/KÅKtv©q/ÆueqpKr,m4{|r^}MuU©s^ts^©Kuxq(}UKs^qQHvrMqpmpp }xqp}/{|mpªCmpqQvKvquxÅFs^wµs^q¦mpr^uUawo(u9AªK}xr^uew¨«Às^Hqpux{|wtvQtUKtKu/ s^©KuxtrztvFs^uUr^}xqpKux}Us^tvqQKwx´ Ç ÈɼÊCËEÌ9ͦÎÏÊEÐ^Ì¼É Ñ=(dXBEÓAV,JÒEceGUYYHÒ=HYKJUJeJMVpd¤J^?'cÓAceBEVVAcUBE?CYCVp?CJeYHdXÔHWXYH<EÔKVpÕGWXdZV4<SbHVpceBEGU=HVÔHB>VQJn=(GxYK?C<®Ûµce=(BEGUVzV;Ü(JMÖ:YHݶ×zceÛµ@®=(TGUYCV¦?CVQÒ>JM=HdXGMÔHcU<®dcUVpdZYK<<Eb_dXdX<EGeYKÔÞÓA=(V4<n<?#c,Ø=(Ù4GxÚKTxÛ9BEdBEcUd¤VpTxTB ß ceT4LE=(GU<ÞVänJMV'VpWZÓaVQT/=(cUdZÒEYKÒ< VpÒE?ÞBnYH=H<JeceVpYJpàF=|á<cU=HØZGeÙÔKÚnVÛzcµV9=(GxJeBETxBEYFdÛzcUVpVQT?*ceLEB>GxYF=(ÛâW>ce='V4ÓAݹLEÒE<>W¤T=FcecUdXYHV<>cU=HB>W>=FJec9ÒnT4VQ=HT<ÞdZãnäT4=(V'ceJedXYHV4WX<VpTY(ceÝVQ='?AJeݹÕCGeYKJ^cUÓåV4Ó = ceWZdXLEäEGxGx=(á=(WO<SGUÕæcUceV4B>ÓAYHdXÝ,J®ÒEÒEW¤Ò>=FGe=HV4ceVQߨÒn?EJ9VpVpG®ÛµJedZÛz=HÔKJ:V<EÒEVpÒE?GUGUYFVpcUbJeV4d¤V4ÓA?C<VQc®ÒE?ÞW¤=æ=FdXcU<ÓAVpJpceVàB>cUç=(BEcYCYæ?CÛzJeYHYKLEWXGeYHÒEDOÔKÒà ÕæYHGecUc¦B>ݹ=FYKcG=HcUWZBEWXYFV ÛT4JGeVQcU=FYcedXã>YHWZ<ÃW cUY(BEÝ,dXJ®<EVpÔÛè=(Ò±=(GxäTxÕ#BEdÒ>cUGeVpYHTßß bWZYFd¤Û¿?CdX<E?CÔAVpJecedZB>ÔKV|<EV4ÓGxJ:VQ=(ceY<>J:JeÒcUYaVpT?CdZݹVpÕÞJedZ<>ÔKV4<Ûê<EV4=(Û¿GxTxBE=(dGxcUTxVpBETdcecULEVpGxT=(ceLEWOGxÒE=(W¤=FWOcecUݹV4YHÓAGUÓAÒEW¤Jµ=Fceä_VQÕJ4à TÑYHÓ BEV®äEdXÓA<EdZ=H<>dZÔ<#Ò>=HGedZV4Óéߨ?Cd¤VQJµJMcUdXÔHY<>=(VpWZ? ß ÒETYHWX=(ÓAcMݹÒYKYHGe<EÓaVpJ<cU=(JA<>WX?âdZDKTV±L>Ö:JMce`¼YKÓïdXJpë4P,VæäEceLnB>JMV4VQÓìJa=(ä_<>ÕÆ?ð=HB>?E=H?EGUdZ?C<EÛµÔí=(=(GUV<n?lLE<EGeVpdZcUÓAJpàzYFb@_dXÒ<EVpÔîTdZJMãnVpT#WZVQáT/<ceVQcUV4?ÅWXWZVQ=HT/GUceTxLnBE=(dZceWVQT/`¼cUGeLEYKGUÒC=HßW ceV4dZ<BEGecec^V¦VpÕîGUã>T4ñ²<>á^YH=H`z<EWnòµ<>ÒEVpäEW¤T/=FWXcUYCcedZݹTxYKYHDC<æGUJÓóÓAT4=HVQdZ<<STxB>YK=(=(GUW¤<EJM?EYad¤V4JeG,ÓAäcUV J:Y*cUJeÒEÒnYGUVQceYFTBEb_dZã>V|dX?EVpYFV?#bKÒEV4=(GUGxcYH=(ceÔHWXWB>Gx=H=(VGUÓAݹTxLEBEÓa<>dZce=(TVQä>ceT/dXWZYHcUV9LE<>GUGe=HLEVKW\<Cà WXßÀV4cebKdXÓAV4WºV'=HT4<>YH?#<Cã>JeÕÔK<LEcUGxBE=FVpceJedXYHdZëp<aVp?=H<>dX<? ô õîö÷êøË>Ì,ø|̼ù÷\ÍÍ÷ºùÐMú¼Éüû¦Ìºý ceþ BEdXÔHV®L>cUGeYHVAÒ7ÙPCYKJe<æBEYFcUÛBEV®J:ceWZV4BEݶV|cÒ>Û:WXV'=(cMBnݹYH=GUbHÓÿV¦ceÔKBEV4V®<EݹVpLEGU<n=(ceT/dXceYHdXYH< <n>Y=(FW7Û½JeÒndXVQ<TdZYHãnLET4G=(ceÓdXYHV4<ceBEY(YCݺ?CceYKBEWZVYKÔHT4ÕKYHà>ÓA@ÒncU=HYKGM<EcUV4dZ<<EcxÔJ:ݹceGUB>YH=(Ó c DAC Workshop, Anaheim, June 12, 2005 43 44 UML for SoC Design >BJMÒ=VpbHT4V¦dãnceYATp=FäcUdZV'YK<dX<>JeYHV4ݺGecUceBEVQ?ÞVä>dX<Þ=KJMcUd¤BET|V®=(<EGxTxV4BEÛ¿dZce=(VQGxT/TxceBEL>dZGUce=HVpW7TceTLEYHGxÓA=(ÒWYHÒE<EW¤=FVpce<ݹcUYHJ:GUÓceBnà=F¦<cæÛ:V|ceB>Û:V'=HGU<dXÔHc9Bcec:YaÛ:B>V®=bKB>V'=bHdX<V¦ceceB>B>VV ã>?C<>VpJU=(TWCGUÒ>dZäWX=(VpcM?ݹYHdXGU<ÅÓØZàÙÚÑ =(BE<>Vp?JeV:cUc^BEÛzVY®Ý¹YK?CWZd¤WX=(YFÔHÛ9GxdZ=(<>ÓaÔaJ B>=(=(GUGxV¼?CcUÛµBE=(V4GU<VÜFdX<EJeÒEY(ݶLCcUc,Û:dX=H<GeceV¦Y'Ò>ce=(BEGeV9ceT4dZceY_dXYH?E<>VpJedZ<EdZÔKÔæ<*=(V4<><_?b_dXdXGe<YKce<EV4ÓAGeݲ=HV4<T4Vc cedZJM<BEÕ_ce<V®YceäBEcUY(VQBEcMJMV|cUd¤J|YHWZdXÓéäEJMceGxV4YH=(ÒnÝGUJ®Õþ ÒndZY(ÔKVpÝLEGM=(ݹGUYKGxV TxGeBEÓAÙ'dZceÛ9VpVp?±BETced¤dXTxLE<±BGxcU=(T4BEWYHd¤cUGUJ|V4GeÓAVQV4JM<_ÒEÒb_W¤YHdZ=FGU<>ceYHVQ?><>J9J1ÓÒEceVpYaGU<YF= c®b_dX<EGU?CVpV4VQJeÛ½?LEWZä_ÒEc|ÕæWX=(dZ<îcM;ݹYKceÖ:B>Ge×:ÓóVA@O?EcUà dXB>=H=FÔHcGx=(T4Ó=H<ÞJeäBEV|YFÛ9=H?E<Ã?CYKVQ<? Top level view Processor Tile1 Tile2 B U S H/W Software1 (V850) Bus1 UML specification of a single Tile Library of architectural components Bus2 BusIntfc1 Mem1 Memory Software2 (V850) Mem2 Hardware1 BusIntfc2 Hardware2 tile_top SW2_packet_valid_I0 SW2_input_payload_I0 SW2_input_header_I0 SW1_O_valid_out_a00 SW1_O0_payload SW1_O0_header SW1:SW SW1_input_header_I2 SW1_input_payload_I2 SW1_packet_valid_I2 SW2:SW RE_O0_header input_header_I0 RE_O0_payload input_payload_I0 RE_O_valid_out_a00 packet_valid_I0 RE_O1_header input_header_I1 RE_O1_payload input_payload_I1 RE_O_valid_out_a01 packet_valid_I1 RE_O2_header input_header_I2 RE_O2_payload input_payload_I2 RE_O_valid_out_a02 packet_valid_I2 RE_req uestAccepted <<net>> input_header_I0 RE_O0_header input_payload_I0 RE_O0_payload packet_valid_I0 RE_O_valid_out_a00 input_header_I1 RE_O1_header input_payload_I1 RE_O1_payload packet_valid_I1 RE_O_valid_out_a01 input_header_I2 RE_O2_header input_payload_I2 RE_O2_payload RE_O_valid_out_a02 packet_valid_I2 RE_requestAccepted <<net>> Initial architectural platform SW2_input_header_I2 SW2_input_payload_I2 SW2_packet_valid_I2 1 1 SW1_input_header_I0 SW1_input_payload_I0 SW1_packet_valid_I0 SW2_O0_header SW2_O0_payload SW2_O_valid_out_a00 SW2 SW1 1 itsReceiver:receiver O_offset I0_H I0_P O_payload I0_valid requestAccepted_a00 I1_H requestAccepted_a01 I1_P requestAccepted_a02 I1_valid requestAccepted_a03 I2_H I2_P I2_valid I3_H I3_P I3_valid <<Partitionable_Text>> 1 object_0 port_0 port_1 port_3 receiver pkt_gen port_2 port_4 SW4:SW SW3:SW SW3_input_header_I2 SW3_input_payload_I2 SW3_packet_valid_I2 SW1 SW2 SW4_input_header_I2 SW4_input_payload_I2 SW4_packet_valid_I2 1 1 SW3_packet_valid_I0 SW3_input_header_I0 SW3_input_payload_I0 SW2 SW1 SW4_packet_valid_I0 SW4_input_payload_I0 SW4_input_header_I0 SW3_O_valid_a00 SW3_O0_payload SW3_O0_header input_header_I0 input_payload_I0 packet_valid_I0 input_header_I1 input_payload_I1 packet_valid_I1 input_header_I2 input_payload_I2 packet_valid_I2 RE_req uestAccepted RE_O0_header RE_O0_payload RE_O_valid_out_a00 RE_O1_header RE_O1_payload RE_O_valid_out_a01 RE_O2_header RE_O2_payload RE_O_valid_out_a02 input_header_I0 input_payload_I0 packet_valid_I0 input_header_I1 input_payload_I1 packet_valid_I1 input_header_I2 input_payload_I2 packet_valid_I2 RE_req uestAccepted RE_O0_header RE_O0_payload RE_O_valid_out_a00 RE_O1_header RE_O1_payload RE_O_valid_out_a01 RE_O2_header RE_O2_payload RE_O_valid_out_a02 receiver SW4_O0_header SW4_O0_payload SW4_O_valid_out_a00 V850 pkt_gen receiver V850 pkt_gen SW4 SW3 <<net>> <<net>> Bus2 Bus1 <<top_level>> BusIntfc1 BusIntfc2 Mem2 Mem1 Hardware1 Hierarchical functional specification SW3 Hardware2 SW4 SW3 SW4 £_£ 7Zms¤q4r^{ÂpuxuerMm4s^tvqQAZr^qQ{è9ÁAkÞwªCux}xt»_}/ms^tvqQwx´ Synthesized architectural platform !#"$%&'$)(*&+)",-./01243)/53%&6"768( ecYH¦äV4ÔHCGUÕ#Óa]^Vp=HJT<>cYH?#Ý1ÓÒEänYCGUYH?CY(cecUVpBÃY_W¦T4dX?C<YHd¤ceWº=(VpL>ÔKGeGUJM<>VQ=H=H?#ÓaW\B>JaݹYK=HG¦=(GUGU?EdXV#<Û:ceL>=HV4GeJMGxVFVQT?âÜFYKJe<EY(ݹ<EYHݶVQceGÞÛµT/ceJe=(dXÒn<EGUVQV¦ÔTݹdZ?CVpݹÕ_d:=F9OdZcU<EV4LEÔÆGUGUV4Vp<ceJBEc®=KVSJMJLEÒ>Û:äEWXߨ=(V4=HWXcMWGUݹYHTx=KBEGUJÓ6dZcedXVQ<#T/T4cUceYHLEVp<CGeGeãnÓaVQÔHJ4J¦LEà GxÑ Y(=FÝBEcUdZced¤YKJ¦YK<âÒnd¤J'YKdXW<= ß BEÒndZVQVpT/GUcU=HJGUYHTxB>ÝEdXceTpB>=(V:WºÒ>?EWXVp=(JUcMTݹYHGUdZGUÒCÓ cUdZYKWXdZ<ÃDKV¼TcUYKBE<VµcU=(ändX<EVpB>dX<E=Ôæb_dZ=æYKGºJMYHV4Ý>c'B>YH=(ݼGxT?CW¤Ûµ=HJU=(JGUV,dX<>á^JM`îcU=HT<>YHTGUVQVpJJpP ÓA; YCÑ ?C®@V4WX dX<ETÔYK<CJeã>V4bKÔKV4LEGxGU=(=(W cedX=HYHJM< ß GeB>YK=(LCGxce?CdXÛµ<EVp=(JpGUPHV'ÓA=H<>VpÓ?æYKJeGeY(ÕAݶc^ÛµÓA=(YCGU?CV'LEá^WX`¼VpJpJµPKdXÔK<æWZL>cUVBEV|WZYKÒEÔHd¤W¤T=Fce=(ݹYH<nGU?Ó?Cà V4b_d¤TV'?CGedXbHVpGUJ1ݹYHGzT4YH<E<>VpT/cUdZ<>Ô ?Cd9VpGeVp<c ÓY(Ý YC?= ?CÑ Vp>BEWEßVA?C?CdXd¤ceÓA=(YKÔHV4ÒCGx<>ßÀ=(WXJeÓèVdZݶYKc<>?E=(ÒEVpWOJUd¤T/T<EceGUV4L>dZäEc^GeÛzdXVa<EYKÔ'YHGeÝDAceB>þ YKVµdX<ÔHT4LETxYHBEGUÓAV#dXÒæÓ*ÙÞ=HL>JeGU<EBETxdXB>YFTpdÛ=FcUcUVpJ|dZT/YKcU=(< LE<lGUÛ9VH=V Gxà<E=(Ñ=(ÒEÓABEÒV'V4ÒEGxWXc^JVaÛzY(Y(Y ÝnÝc^ceÛz=dXWXVpY¦BEJ9cedXV4=(dXWZGxGUVQ=(V'JGxdXTxce?CBnBEVpdX=F<Tpc,=(ced¤=(W1T4GUYK=(VzWäCÒn]^=HVp=(<>TGe? cc T=HYH?<n]M=KJMTd¤J^V4c:<Y(c®Ý7ceݹdXYKWXVpLEJ®GµdXJM<ÃÛ9cUdZcUBETxVABEVQ<EJ:Vc^L>Û:JMYHVQ?AGUDOݹàOYH;&GµdXÓAGUVpÒET4V4WZVpdXbHÓAV4V4G®<LEcedX<><EdÔ c|ceÒEBEGUV®YCTTVpYKJUÓJeVpÓ J'LEdZ<n<ETd¤T4YH=(ÓAcedXdXYH<E<ÔÛ9Ò>=HdZceTxBÞDKVcecxBEJV¦Ý¹Ý¹GUYHYHLEÓ G ݹ=(YHWXW>LEݹG9YKÒLEYKG:JUJeJMÛ9dXäEdZWXcUV|TxBE?CVQdZJzGUVp=HT<>cedX?YH<>=*JpJeà V4<n?CV4G:LE<EdZcµ?EV4WXdZbKV4GxJ¼=Òn=HTxDHV4c,ceYA=(<>Y(ceB>V4G,cUdZWXV'dZ<YK<EVYHÝ7ceB>V DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design ( /0 & #*&+'$%(*&+)" 3)/ 42/0 3)&+7"762( "/0)/ *&+' ( /0& #6&+)( EÒWZÑ d¤GeJ^BEc®YKV ÒnY(Y?CÝzJMVpÒEVQÒE?SGeWXVQYF?CÓAÕVÓAVãncUVp<EBE<KVpYCc'?Ã?C?CYHÒEdXWX=HWXYH=(ÔHÔKcMGxÕHݹ=(YKàÓGeçÓaYKT4J¦Ge=HÓace<#Y=HänWZänWXV ÕVAL>ceTJMBEYKVQVA<>?JeL>dXce?CJeYV4VpG®GeJMVQÒB>?#Vp=KT4dXJ¦d<ÃݹÕ#ceY#cUBE=ÞJMVVpÒEWZT4WXVQ=(YCT/cM?CcݹVpYK=(JeGedZ<îÓÔK<S=(=(GxÒEGxTxTxB>BEBE=KdZcedZJMceVpVKVpTàTceceLEÑ LEGUBEGUV VVpJeݹdXGeV <SYKÒ>Ó YHGeL>V4= Gß ?CÖ:V`¼ã>ï<>VpJp?âPEB>ÒE=HWXGU=(?EcMÛ:ݹYK=HGeGeÓaV'JaV4WX=(V4GUÓAVV4JM<BEcxYFJÛ9=(<ð<>?=HJaÓAVp=HÓ<ÅYKdX<KGedXcUVpV4JpGxPETTYKYK<E<E<E<EVpVQTT/cecedXYHVQ<â?äY(ÕæݦBnÓA=(VpGx=(?C<nÛ:J9=HY(GeVæÝ1äEGeL>VQJMJeYKVpLEJGxYHTGVpJ ?CVQWXdZ?CDKdV ß ÓT4JMÒ=FYCcUYHVp?C<>?|L>?EWZÒdZV<EYHÔ*V4dX<dZV4cecMWXBEßÀV4ceVpÓAYHGßÀV4ÒcU<YæYHcUdXJ,Bn<dZ=(c <aGxT?CcUYKÛ:BE<EV=H<EGeVQ=HV|T/GUceTxYKdXBEYHG'dZ<nceJeVQJ4Y(T/àݶcUc^LEÛµVpGU=(Òn=HGUVpWCVH<>ÒEP>?CW¤ce=FdXBE<EcMVݹÔYKÓAGeYKÓ<YCà?CcUBE¥LEV¼WXVpdL>cUJ'BJe=(V4GeGGUVQV JºJMÒ?CTxBEVpVpTÒEYKc1WZdXYFT4ceV1ÕKYÞVpce?Y¦ØZÙÚ¨ÓacUPHYÛ:=(cUÒ V9BE=ÒEVGU?CT4YHVpYHÒJeGUdZYKGeÔKJeV4< V ß =(JMÒ<±VpT4=Kd?Eã>?CVQdZ?cedXYHÔH<>Gx=(=HÒEW1B>J^dXcxTp=(=(ÔHWXV WZÕadZ<±ä_ÕYHLEcUBEG|V?CL>VQJMJedXV4ÔHGQ<ÃPCÓaÓ=(V4D_cedXBE<EYCÔa?CYKL>WZJeYKV|ÔHY(Õ#Ý Û9ceBEBEV*VpGeï¦V*RSceBE[ÆVA?CÒEVpW¤=FÒEceWXݹYFYHÕGUÓAÓ Vp<KT4c=H<Ã?Cd¤=(=(W¤ÔKJMGUY=HÓäV à ceceá<BEBEVîVA=K?EL>Ö:?CJe`zV4dZceG®ïdXYHT4Jp<æ=HP¼<±JeceÛ9YJeV4dcecxWXBEVpTxV|BET/cQVpÒ>P7JpGeP,=(VQ<>B>?C?±=HVã>GUT?C<>YKÛµVp<E?æ=(<EGUVpÒEVTWX=(c¦V4cMWXcUݹV4BEYKÓAGeV4ÓaÓV4<JpcUPL>JpÛ:JMP¼dXV|<Eä>ÔL>=(JMW¤TJMVQYKYJ4ÓP¼ÒEäEÓ GUYFL>LEb_J<EdX?Cd¤ä>T4V¦Ge=(d¤cece?CB>dXÔHYHV'VQ<ÃJ4änP1Òn=HV4=FJecUdXceT¦THBnàZJGeP¼VQcUݹJMGeYæYKYKLEä>Ó%GxLETdZVpÛ9W¤Jz?±BEWXd¤dZBETxDKdXB VJ YFTYHÛ9GU<ÞGUVpÒET/W¤cU=F<EceVpݹJUYHJGUÓYHݼà>cUÖzBEYKV <>LnJMd¤JeJM=HceÔHV4V*<nTYHÕÝ,TxceBEB>VQVATxD_=HJµGUTx=HB>GedV'cUVp<ET/VpcULET4VpGxJU=(JeW=HTGeYHÕAÓAdX<ÞÒYHYK<EGU?CVp<VpcUG:J'ceY=HJ'V4<>ÛzJeVpLEWZW1GUV=KJcUBEcUVBEV4JMdXVpG|ÓadZ=(<<cUV4ceGed¤T ß dceZT<BEYHVp<>cU<æ<EBEVpV äTV¦=HcedXGUV=YHTx<C<ÞBEÒndZÒ>ceYKVQGeGMT/YHcUcUceVpLEYC?AGUT=HcUYKY*W7Wà ÒEcUÑ BEW¤=FBEV|ceV|ݹTYHYC?CGU?CÓVpVpJedXà>JeÔHdXáÔH<æ<C<ݹT4YHVpYHGU<ÓAÓab_Ò=FdXGeYHceYKdX<EYH<EVp<ÓA<KcxݹV4GUJµ<YHc¼T4Ó =(ݹYK<ÞceG¼B>ceݹBEV*L>VpGM?C<æcUV4BEÒ>äV4WZV|G9YFÕ_?CJMceÓAV4V4Ò>ÒnV4WZ<YFJ¼c¦ÕKcUVpY?C?ad¤T4=(cUYKÔKY*JeGUdZ=HcUÓ BEÓéLEV®W¤Û:<E=FceYCYHdXLE?CYHVpW¤<\? J à ݹceYHV4GµÓaÑ=*JæBE?CÛ9V|L>d=HcUceWOB¸YKÒCÒE=ߨGeGeYCdX T4ÔHVpBJUcJMYKâÒEG¼d¤T/Ö:=(cUGx`¼LETxGeï*BEV*dZP:ceY(Vp=ÅÝ Tceþ ÒELEdZGeGUÔKYCVLET4GeT4VpVÞYHJU<>JMÙYKJeGdXJMJMBEceäEYFdX<EL>ÛÔ JpJP:Y(=(=ÆÝ<#c^B>Û:V =(<EY*Gx=H?Cd¤Ó?CÛµV4Ò>=(<WZGUceVV#d¤T4YH=HLEÝ,W<E?CJMdZcV4dX<EÒET4ÔHWXYHYFWXV<EÕ_ÓA<EÒ>VQGeV4T/YC<cUTc¦VpVQ? Je?CJed¤YHcU=(YÆGzÔKGUJMce=HÕCB>Ó JMV ß äEÒEL>GeYCJ*T4ceVpBEJUJMGUYKYHG9LEÔKLEBÆ<EdZcU=SJ?C=HVQGe?CV®dXTpWXV=FݶcUc®Vp?lTYHäEÓALnÒEJWXVdXcU<KV4cUWXV4ÕÞGeݲLE=H<nT4VÞTYH=(<><><E?ÅVpT=#ceVp?ÓAV4dX<ÓAceYHB>GUdXÕ±J¦ÓA?CdXYC=H?CÔHGxLE=(WXVHÓÿà Ñ =H<>BE?VÞcec^B>ÛzV4YÃdXG¦JeTdX<EYKÔHÓWXV ß Ó*LE<Ed¤T4=(cedXYH<dZ<EݹGU=KJ^cUGeL>TceLEGUV®Û9dZWXW7äVJMÒVpT4dãnVp?dZ<æceB>V®Ý¹YHWXWZYFÛ9dX<EÔAÒEB>=KJMVKà Ge<EÑ VFV4EB ÜFÛðV JeY(ÒE<>ݶceW¤V4=FÛµÛÂcM=(ݹYKGU=HGeV1GUÓ0TxÒ>BE=HdXdZGMJ¼cecUVQGedT/cUVpcUdZÒEYKLEGU<EGUVp=HdZJe<>W\V4Ô¦<ÒEce=(W¤=FVQ<nce?*?|ݹYHL>dZGU<JeÓdXcU<EV4ÔGedXݲJ=H=(ceT<EB>V:YHV4ceJM<íBEÕ_Vp<=(G,ceLCB>?CcUVpV4YHJeÒ>ÓadXJWZYF=FJMÕ_cUL>dXÓATpÒE=(ÒnV4WX<YKWZÕc¼GMc ?CÔHÒEd¤Vp=(GU<EÔKYFV4GUbGx=Hd¤=F?CÓÂcUVQVp?|=H?J1ä_L>dZÕ®c,JedX;d¤<EJ¼Ö:ÔæJe×:BEBnYF@O=(Û9Gxà ?CÑ< Û:BEYK=(dX< Jß ceTBEW¤=HVJUJ®änYHdZ<>cMcUJMYHcU=HÓ<>TY(VQÝ J'þ ÒEdXGeÔHVQL>JMGeVpVæ<c®ÙHàOdX<îá<SceBEcUVaBEdXdXJ®<EdZ?Cced¤d¤=(=(ÔKW,GUYK=HäCÓ]^VpP>TÓAc|YCÓ?CYCLE?CWXVpVpJ'W,Ge?CVpd¤ÒE=(GUÔHVpGxJe=(V4Ó<ceà VQÑ ?#BEdZVQ<±JMVÛ9T4BEYHdZceÓAVAÒn=(YKGU<EVV4ce<B>cxVJ B>?CLE=bHGUdZV¦<EänÔVpceV4BE<VJMBnÕ_=(<Gxce?CBEÛ:VQJM=HdXGeë4VFVQÜF?JeY(ä_ݶÕacUÛ:cUBE=HV'GeV¦T4Ò>YC?C=(GeVpceJedZdZceÔKdX<YH<EcUdXY<EYKÔaWÒE?CBnV4Ò=HJeV4VH<>à>?EádZ<<EÔAcUBEYKd¤<ÞJcUT4BE=KV®JMVÓA=H=HWZWºÒEÓAÒEdXY_<E?EÔALEJMWZÒVQVpJT4B>dã>=VQbK? V ceänLEBE<EVpVaV4dZcU< YKJ9<EÓacUWZB>ÕÃ=(=FÒEc¦äEÒL>ÛzVpJ®Vp? GedX<±VdX< =HcUWZBEB>GUVVp=(=KGxce?C?CdXWZÕÞÛµVKà=(ÒEGUÑ GUVVpBEJe=HVV4<><T4?ðcYHÓAdXBE<V4Ònce<>YKBET4<EV*VV4<YHcecxGUBEdZJ¦VpÔKÕÅdXdZ<í<>=HGUÔHVpW7GxJeÒELE=W¤Õ#WZ=Fcce=(ݹdZYHGU< VGUÓ ÒdX<>V4=(JMGUcedZ<nÒEVQ?#=HB>?ÃV4=(GxÓAce=(BEW¤YHJaV<ETÔA=HYHGUcU<>TxBEBE<EV4dZVpÓceTVQceT/VpcecU?âB>LEV4GUcUGU=HYV W änÛ9=(GUVdZVAWXW7=cebFäBE=(VVdXW¤JM=(VpäEWZVQWXV'T/ceݹVQYH?G9"!$ݹB># YK=HGLEGU?C<E=AÛµdZcU<EJ=(V4GUÛ¿ñÀVÖ:Ü(TJM`¼YCYHï¦?CݶceVQJ*ÛµJMdX=(=HÔHGU<><V9?lJ^Ò>cU?C=(V4VpGeÒ7?EceàdZdXceTpdX=FYHce<>VQdZ?í<EÔAB>=V=(<_Gx?CÒÛµV4GU=(dXÓGUVaVpT<YHcUJ9ÓAÛ9ÒYHBE<EVp<Vp<cecUBEJxò'd¤Jce?CB>d¤=(=(c ÔKGUÛ9=HdXÓ WZW % & ù(Ð '&* ø )^,÷ +Ë>ÐeÍú,÷êÍ÷ºùÐMú¼Éü.÷ -0/1'0ø )^÷ áV4<Gx=FceYHdXGxYH?C< V4G>YFceYÅÛ|P1L>Û:<>?CV#V4ݹGxYCJMcUT=(Ln<nJa?ðYH<ðceBEceV±B>ä>VÃ=H?CJedXVpT±JedXÔHJ^cU< V4Ò>Y(JÝce=íB>=(ä>cÞ=KJMcxd¤=(TDHLEVÃ<EÒEd¤?CWX=KdXGeTVQVST/cedXdX<YH<nYK=(LEWGÞäEÒEGUd¤W¤?C=FceÔHݹV#YHGUL>Ó JeVp?âÔHV4cU<EY ß DAC Workshop, Anaheim, June 12, 2005 45 46 UML for SoC Design ¹ÝceTV4V4YHGUÓA<>V4<E<ÒEVpc,W¤=FTÒEc¼cUB>VHc^P=KÛ:JMJMY VQB>J1YF?CY(Û9d¤J^Ý<lcU=®dZ<ndZÒE<íT/W¤c9=FcUJMcMBEdXݹ<EYKVGeÔHcUÓ&WXYHVߨÒCTÒEߨYKGUGe<CYCdXÔHã>TBVpÔHc*JUL>JeGUÒnYH=(=(G,ceGedXäEcYHLn<Y(J:Ý9dZ=H<aceGUB>Û9TxB>VÞBEdcUd¤ÒETxVpd¤BAT/T/cUcUÛzLELEGUVGeVpVKJMJpPºcUà =HT4þ YHGMc1dZ<>ÔKݹJeLEGUdXJMYHGUceV Ó&dX<E>ÔS=(?E<YHV4ÒE=HݵGUd¤c^T/TxÛzcxBEJ¼YSdZcecUVQd¤BET/?CV®cUVpLE<K?CGUcUd=Hݶdßß W äET4TYH=(LEW1<>dXWX<EÒ>?íVpGeTV4=ceßÀVpdX?C<?æL>ceV4=Hä_GxW,ÕæTÒEYK=A<EGUY_<EJeT4dZVQ<EVpT/ÔKJUceJMWZVQV®YK?SG'LEJe<>JedZÕC<EdX?CJ^ÔKcUdXWZGUV4VAVpÓ T/ÒEcUGUdZdXYKYC<í<>TÛ9VQ=(JeWBEJeä>YHd¤TxGeG¦BÃd¤?CcecUVpÔHBEÓV'VAÒ>ݹGUc^WXYH=(ÛzÓceY#VpJpJeàdZ<>á<±ÔH WXVceBEcUÒ>Yd¤J®GeYCV T<EVQ=(JeÓAJeYHà ÒEG¦WXVHceVpPÓAÛ:ÒEVAWX=(Û:ce=HVQ<Jc¦=(cUGUYV N VÃäV4B>=b_fdXYHGx=(W9WXV4bHVpWdX<¥ceB>V E B # V ¹ Ý E L > < T e c X d H Y > < H = Z W Z d ^ c ð Õ ( Y | Ý e c > B S V E ä U G X d C ? K Ô S V ¤ d Þ J e J n Ò Q V T Z d > ã p V ? ( = c e c > B Ñ YHänäCVpV4]^VQ<aT/c,?CVpÓAT4YHYCÓA?CV4ÒWYK?CJedXVp=H? ÔHGxdZ<=(ÓÂc^Û:JeY'BEYF?CÛ9d 9O<AV4GUYHV4<<c,cUBELEV9<EcedZcUYKJ ÒCߨ WZVpbHV4WCÒn =(Gec,Û9Y(BEÝOd¤ceTxBEB VBnÒE=(dX<>Tce?CLEWXVpGUVHJ1à ceÑBEVBEVJeWXäE=bKGUdXV:?EJeÔHd¤V9?CVµB>=KY(JÝ ceceBEBEV¦V|äEäEGeGUd¤d¤?C?CÔKÔHVV®TTYHYK<><E<E<EVpVpTTceceVpVQ??cUcUY Y N à =(Ñ<n? BEV® änVpB>=b_dZYK G:N^YHf ݺNMÛ9äf BEY(cUd¤TxBBa B>=(<n?CWZ VQJ1cUBE=H<>V?Óa =HJMceVpG¼JedX ?CV Y(Ý T4JMÒ=(<½VpT4dݹãnYHTpG=FcUV dZ<EYK=H<îÓJMÒ>cU=HWZVîÔHVHänPVläY(?CcUVQBíJeT4LEGedX<EädZVpcUf ?J®Y(LnÝ:JMcedX<EB>Ô VaäEïGeRSd¤?C[óÔKVAJMT4cUYH=F<cUVîcU=H?EdZ<îdX=HJMÔHÒGxVp=(T4ÓadãJ4Taà:N^f á=H<?E?CcUGUBEVpd¤JUJJpPOݹLE?><>=FT/cUcU=dZYK=H<><>N^=(? f W cece;9B>BE< V =( cceVpÛ9ÓÒndZWXYKÒ>WGMWXcx=(B>Jce=VHcUbKà B>VÞ =FcUc|Yl!GUV4änÒEV±GUVpTJeYH V4<><<Ec|VpT=TYHce<><Vp?Åcx=(=(ÓAdXce<>dXYÆ<EJÔ=l=HWXT4JeJeYHYÒ<_VpGUbHTV VpdZ"ãn<LETcedXVpYHäEJM<ÃcLnJaLn$ñ #&JMdZVQ<ð%?S' cUcUBEòYV#=(d¤<>ã>?C?S<>Vp<K=H=KcUWTxdݹD_TÕS<EYK<CYFceÛ9BEã>VAÔKWZVQLEäE?CGUL>ÔH=(V|J®cedXYHÒÒ<âYHYHGeGeY(cUcUJJ Ý ñäE)( L>Jµ*+ cUf Yò9Û9ݹYKB>GdXTxcUBBEV dZcT4dXYHJ9ÓAT4YHÓ*<EL><E<EVQdXT/TpNMcU=Ff VpcU?dZYKà <SÛ9dcUBScUBEV ä>L>J¦=HGeä>dcUV4GQPJefdZ<nTV*dZc®dXJ'=Óa=HJMceVpG¦YK<#ceB>V F R u n W , Addr D a ,, nc t a t io nal S pe c s o f t h e I nt e r c o R BrgUp12 Ac k n W - Addr BrgDown12 - D R a e -- nne t a c t s I nit ial A r c h it e c t u r al t e CPU1 Bus2 BusIntfc1 Mem1 pl at e CPU2 Bus1 q m BusIntfc2 Mem2 HW1 HW2 Mapping R n W , Addr D a t a ,, R BrgUp12 n - -D Ac k W Addr BrgDown12 S R 9 .25 3/6 47 3 01 11 y a e t a -- CPU1 Mem1 q nt h e Bus1 Mem1 BusIntfc1 Bus2 BusIntfc1 s is 5 67 8 2. 3 / 4 3 0 8 8 HW2 BusIntfc BrgUp12 BrgDown12 : CPU2 R Bus2 e q Arb2 HW1 Mem2 £;>£ y¼uUKm4{|ªvuµqpOoKr^tKpuKuxwtvQ>´ Ac BusIntfc2 Mem2 HW1 BusIntfc CPU1 CPU2 Bus1 k BusIntfc2 HW2 Y(?CÝEV4ÒEcUBEád¤T/<®VµcUceVpdZ<BE?æceV¼VpdZ<ÞݹGUYHT4WXceYHWZBEYF<EV'Û9<>VpÓAdX<ET/dXÔcx?>J\ÒE?CYKBnWZ<V|=HceJeJeYVHVpcUP4TBEÛ:cedXVµYHV,LE<Ò<>V4YHT4GeÝ YHݹYHþ<EGU<EdZÓ¿ÔKVQLET/ceGecUBEV VpVz?*>ÓA?EL>Û9=H=(ÒEBEWZÒEV4ßÀÒ>dXGU<EV<GeÔYC TYHVQÝCJeceJeBEYHV¼G\ ݹceLEVpÓ<>B>T/Ò>=KcUWXdZJzYK=(äce<>VHV4=(àVpWÑ<ÞJMÒBEÓaVpd¤J T4=(dÒEÒ>ãB>ÒnT4=K=FVQJM?æcUV:dZYK=KdX< JJ N^f DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design >BTYH=(<>Gx?C<EÛµVpT=(ceGUVpV'?ÞT4ceYHY<E<EVQT/cUVp?æà ceY N P>Û9BEdZWXV ! NMf B>=KJ9äV4V4<Óa=(Ò>ÒnVQ?#=HJµB>=HGU?CÛµ=(GUV f BEV¦ã><>=(WOJeÕ<cUBEVpJedXJ:JMceV4ÒæT4=(<æJ^cx=(Gecpàá<aceBEd¤J:ÒEB>=KJMVKP(ceB>V¦<EVpÛ=(GxTxBEdZß : ; ¼ c e c > B X d : J Ò H Y X d K < Q c H P U c cedZ<EVpÔTce=HLE<>Gx=(?AWndXÒE<KW¤cU=FV4cMGeݹݲYK=HGeT4ÓóVJMd¤Õ_J¼<=HceLCBEceVQYKJMÓAd¤J1=(JeceLEd¤ÒET4=HÒWZYHWXÕ Gec¼ÔKÒEV4GU<EYFVpbGUd¤=(?CceVQVQ?*?Aä_L>Õ JMdX<E;ÔÖ:Bn×:=(@OGxà?CÑ Û:B>=HV9GeVFGeÜFVQJeJMY(LEݶWZcUceÛ:dX<E=HÔ|GeV:YKÒ>LC=(cUT4GeYHcedZÓAcedXV9YH<EdXJß ceceBEBEV®VݹänLEYHWXcMWXÕÞcUYHTÓYK<EY(<EÝ VpTþ cedXVQÔH?æL>Ge=H?V GUTx>CBEàOdZceáVQ<ST/cUcULEBEGUdXJ®=HW?Cced¤V4=(ÓAÔKGUÒE=HW¤Ó=FcUP>V|ÓAJMBEYCYF?CÛ9LEWX<VpJ'dX<ÞGeVpcUÒEBEGUVVpJe?CV4V4<Ò>ceWZVQYF?#Õ_ÓAdZ<±V4<Û9c9BE?CdZcedX=HVAÔH=(GxGU=(VÓéceB>=(Vc B>T?CW¤LE==HbHGUJUdZV¦J®<EänÔÆdZ<>VpJMceV4cUBE<=HV±<>JMÕ_TB>VQ<=(J'ceGxBE?CÒEVQÛµGeJMVQdX=(ë4JMGUVpVQV<?ÜFc®Jeä_Y(dXÕa<îݶcUcUÛ:ceBEBE=HV'VaGeVæT4dXYC<EÒ>?CdZ=(ceVpd¤GeJe=(cedZW,ÔKdZce<YKdXYHäCcU<>]^YdZVp<EYKTWÔÅc|?CÓÒEV4B>ÒYC=HV4?C<>JeVpVH?EW,àzdZ?C<Eád¤ÔA<¥=(ÔHYKceGx<ÞB>=(dXÓcUJBEà V®T4Ñ=KÓAJMBEVK=HVQP ÒEJM VÒEdXT4<EYHÔAÓAJM ÒnÒYKVp<ET4dV4=Hã><<>VQcx?? J N^f B>=bHVäV4Vp<¥dZÓAÒEWXV4ÓAV4<cUVp? dX<ðBn=(Gx?CÛ:=HGeVKà Ñ BEV4dXGÒYHGecMßÀceYHßÀÒYHGecTNMYHf <><EVpTß ce=(dXGxYHTx<>BEJdcUJeVpÒnTVQceTLEdZGxã>=(VpW7??C=Fd¤=(c ÔKceGUBE=HV:ÓݹLEà <n¦<T/æcedXYHcUBE<nV|=(WCY(WXcUV4BEbHV4VpGW_GeB>Vp=(ÓA<>=H?7dZPE< ceÒnB>YKV4dXGMGceßTcUYKY(<EߨÒn<EYKVpGMTccedXTYHYK<><EJ:<EcUVpYÞTce=(dXYH<#<>=HJ ä>dX<J^cUGUcU=KBET/V:c9ã>äE<>L>=(J W ceB>YA=bHceV1B>V®äV4JeVpÒ<|VpTGedZYKãnLCT|ceVQ=H?GUTxPBEcUBEdZceGeVQYKT/LEcUÔHLEB|GU=H?CWOVQäE?CL>d¤T4J=F=(cUcµVp?|Û9ä>B>L>dXTxJ7BdX<ceceB>V4V4GeÕÞݲ=HBnT4Vp=J,bHV'ñ$änVpV4<#TYK<E* <EN Vp=(T<>ceVQ?&?à * f ò/P JdXMJÕ_<=ceÑ äEBEBELnVQVpJMJ9d¤JeJ¼V ÓacedX=HY_<JMYHceceVpWV4GMݹGQݲYHPE=KG9=HTVp=?>J'?CJMd=(V4cUc:GUdZYKVAYH<>ݺ=(=(W¤JeW\JMLEYæGeÒEV dZÒ"K<>YHL>JMGeVpcUce=HJMVpc9<>?ÞT=Hd¤äE<>=FL>?cUVpJµ=H?±=(TxGxD_=(Tx<ELCBEcUYFdZYHceÛ9VQÓaWXT/Vpce=F?CL>cUÔKdXGeTpVVQ=(J4WXWXàdZWZ<>Õ#þ VpYHJ9ä_G Õ<E VpceVpB>?æ!VAce;YaÖ:ä×:V@#NMTf YKdXPE<<EJMce<EdXV4<>VQGeTT/ݲV'ce=HVQT4dZ? Vc ceceY|BEVcUBEÒnVYJeäEJeLndXäEJ¼dZ=(WXdZGUc^äEÕædZcecUVpYæGpàKT4áL><AJ^cUceYHBEÓAV'dXTë4LEV|GUcUGeBEVp<Vc¼=HbHGeVpä>GUdJecUdZGUYK=(< cedXYHYHÝ7<#YHÒLEYHG¼WXdXÒET4WXÕ=(cMä_ݹYKÕ#GeÓóTxBEY_?CYKVpJeJedXdX<EÔHÔ<AceäY_VYKc^Û:WPKV4ÛzV4V<±Ò>=GeYFä>b_=Kd¤JM?Cd¤VT Ge=(YKLCLEcUYH<>Óa?=FGeYKcUdXäETpdX=(<WXWZÕañ²<ETY|YKÒE<CGUã>dZÔKYKLEGedZGec^VQÕE?ò =(?C<>LE?aGUdX<E=®ÔJMcUcU=FBEcUV'dXTJeÕ_ÒE<GedXceYHBEGUVQdZJMc^d¤Õ*J¼=(Ò>WXB>ÔH=HYKJeGeV¦dZceBEdX<ÞÓYKà GUÑ ?EBEV4G,V9cUä>YL>=KJ¼T4=HT4GeYHäEÓAdZceYCVp?EG1=FdXJ1cUVceBEceVpB>< V ceceGeBEBEV"KVVL>ä>?CdZGUL>V4VpݲJ,=(?A=(LE<_GUWZcäELEdZÓ YHceGx<>än=FVHVpcUà GzdZYKYH<Ý7=HÓAWZÔK=KYHJ^GUcUdV4cUGxBEJ,ÓÂ=(<nT?AYKÓAceBEÒEV®WZV4JeceV4VpWXWZVpÕAT/cU=FVpc1?AcUBEÒEV9GUdXYHݹLEGU<>dc^TÕKceàKdXYH;<><=HWE=(WXWZV4ceVpbHGeVp<>W>=(=(ce<ndXbH?V9=d¤bKJ,YHcUd¤Y*?ÓAcUY|YCL>?CJeV4V W dXV4JWXV4d¤ÓA?CÑ V4V4<BE<cUV|cUdJã>=(VQGxdZ<? TxBE?EcUdBEcULEVpV*GeTdXce<EdX<ELEÔ¦dZGxcece=(d¤BE=(WVµW äE=(ÓaLnGxJ=(TxBE=FÒ>c9dÒEcUdZVpÛ9<>TBEÔ'ceLEd¤Ò>TxGxB#B>=(=HW7=*JeÒ>VzݹWXL>=(ä_<>cMÕ|ݹT/YHcUcUGUdZBEYKÓV:<>ݲ=(=(=HW\GUTVT4c YHcUTÓAB>YH=F<>Òc1<EYHVpä<ETY(Vpce<KcUVpBac?BnÖ:cU=HYÞ`zJ:ï=AceJYaLE=(<Eä<>d V"? LETB>YKV*=H<Eä>GU<E?CL>VQÛµJ4T/ànce=(VQáGU<? V ceÛzBEVd¤J9D_Ûµ<EYF=ÛðÕHPCcUÛ9BEBEVVpäE<L>Û:J:V=FczJeÒnÛ9VQBETdXdZTxݹBaÕæÛ:=AVB>B>=H=GU?CbKÛµVµ=(ceYGUV'TÓAYH<>=H<EÒEVpÒETdXc,<EceÔABEY(VÝ1äE=AL>Jz<EV4dZ<Û¸ceVpݹGMLEݲ<>=KTTVcedXYHÒ<>YH=HGecUW\J1TceYKB>ÓA=(ÒnczYKÓA<EdZV4ÔK<Bcpc P =(TYHÒE<>Ò<EVpVp=HTGcdZ<#YH<EdZcUVaJ'ݹ?CL>VQ<>JeT/T4cUGedZdXYKÒC<>ce=(dXYHW¼<\T4àEYHáÓA<ÒceYHBE<EVVp<KTLEc*GUceGUY#V4<Ó*cL>bHWVpcUGUdZÒEJedZWXYKV<äEY(LnÝ1JMVQYHJ4LEàºGáce<îY_YHYKWÀGUP>?EÛ:V4G®Vce?CY±Y?C<EYYHc¦ceBE=(d¤WXJpWXYFP\Û½dZc*cUdXY J <ELEVp<ET4dZcUVpJpJUP_Je=H=HGeWZWÕ|T4cUYHY|<EÒ><E=(VQGeT/cecUdZVpce?adXYHcU<Y cUYKBE<EV9V¦Ý¹LEJedX<><ETÔHceWXdXV¦YH<>ä>=HL>WZJ4dZc^à Õ*Ñ YHBEÝnd¤cUJzBEdXVJ:Û9T4YHB>ÓA=(c:ÒnYKB><E=KV4J¼<äc,V4dXVp<<ceY?EJeYHÓA<EV¦=HWZdZWX<æV4G,ceݹBELEd¤<>JµT/JMcUdXdZÓAYK<>ÒE=(WXV W äETYHGed¤ÓA?CÒÔKVAYH<E?EVpVp<JecUdZÔKJ9<îTYKV=<E<E<E=(VQÓAT/ceÒEVQWX?æVacedZ<íYa?CÛ9d BE9d¤VpTxGeBîVp<KcecBEVä>L>ä>JMGeVQd¤J4?Cà ÔHVAB>=KJ|äV4V4<íÒ>=HGMcUdcUdZYK<EVp?îdX<ceYc^Û:YJeLEäCß ±ÌzÉ.Ï )MΦù_Ð^̼ɦù ÔHÔHÑ GxYKBE=(=HVÅÓAWP ÓaTäEYKLC=(ÓAäEcaÒEWXVdXWZ<â=V JM<CYKYKdWZc^GULEÕ¸?EceV4dXY(YHG Ý<>ceJpYîTànLE`¼änGUGUVWX=(V4<cMV ݹcS9OYHVpGUV4TÓüÓ cedXänbHä>VKVQ=HP?EJeVp?Cce?#BEVp?Vp?CÕlVQJeJMGeÕCdXV ÔHJ^"KcU<SV4L>ÓadZT4GUYHVæJ#<>VT4GUV4V ÒC"TLEcxdXJdXV4Ge<TpVQc =(J<ScUceVpB>=(TxWXVÅBEWXYF<>=HÛ¸d "?CLEYKcUYÞÒCVQJ*ce=HdXYHݹTxYKB><êGAdZVpYHÓbHÝAV|YCÒ>cU?CBEGeVpYHdXWJßß dZGe<EVpÔL>JM<EVKVpàKÛ0á<Þ=HceGUBETxd¤BEJ:dZÒ>ceVQ=(T/ÒcUV4LEG:GU=HÛ:W1VJMÒB>Vp=T4bKdVãnTpÒE=FGUcUVpdZJeYKV4<><J®ceVQ=(?<>=?±ÓAÓaV4= ce<CBEdZYCÓA?CdXYKë4WZVYKÔHceB>ÕVceB>YK=(ÒEcµÒ=HYHWZGeWXceYFLEÛ<EJ1dZceݹdXYKVpG¼J'cUݹBEYKG|V®?C?CVpVpJeJedZdZÔKÔK<< DAC Workshop, Anaheim, June 12, 2005 47 48 UML for SoC Design Y(JMÒݼVpGUT4V4dL>ãnJUTp=(=Fä>cUdZWZYKV<>ÒEJ9W¤=F=(cM<>ݹYK?Ge=(Óa<J'V=Û9<_dZd¤ceJMBîcedX<EÒEÔAGeYKB>ÔH=(GxGx=(?CÓAÛµÓa=(GU=(VäEÜFWXJeVY(ݶdXcU<Û:ceV4=HGxGeTVYKT4<EYC<E?CVQVpT/JecUdZJ¦ÔK<Þä_Õ#cUVpWZVpTxBEbHVp<>GUYH=HWXÔHYHdXÔH<EÕKÔÞà YK<±ïRÃ[ ÷ U÷\ËE÷\ÉÏO÷ºù ´9y´m4wn~_Áæ´CknmÀqQvqK~Em4_Áæ´Cr^uxqQw¨s^tvKt¹~ÀµÁAktvampi\vux}esr^qQtv}¦(Hw¨s^ux{êknuxuU uUwtpÁuUs^©Kq(KqQvqppE~ *tv "!$#%'&(*),+.-0/1(32547689.:;!<=?>@(*6$9BA < CD(.)E:1<?9p~ ªKªn´K5 F7G(B HFI~ HpppH´ DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design A SoC design flow based on UML 2.0 and SystemC Sara Bocchio1, Elvinia Riccobene2, Alberto Rosti1, and Patrizia Scandurra3 1 STMicroelectronics, AST Agrate Lab R&I, Italy {sara.bocchio, alberto.rosti}@st.com 2 Università di Milano, Dip. di Tecnologie dell’Informazione , Italy [email protected] 3 Università di Catania, Dip. di Matematica e Informatica, Italy [email protected] Abstract. In this paper we show how to improve the system level design flow for System-on-Chip currently used at STMicroelectronics exploiting the use of lightweight modeling methods, like UML, to be used as higher system-level languages operating in synergy with some other lower level languages, like SystemC. Such an improvement it was possible through the definition of a UML 2.0 profile for SystemC. High-level functional UML models or platform independent models (PIMs), as conceived by the current Model Driven Architecture (MDA) vision, can be “refined” down to platform specific models (PSMs) written in the UML SystemC profile for the final implementation. A case study based on a 802.11.a physical layer application mapped on a hardware software platform is presented, in order to validate the UML-SystemC generation flow. 1 Introduction The conventional design process starts from a functional executable model, usually done in a software programming language (like C/C++) or by modeling tools such as Simulink, capturing the system behavior from the requirements, usually written in natural language. The partitioning between hardware and software follows to decide the final destination of the design components. The software parts are compiled for the target processing elements, whereas the hardware part is initially expressed in an hardware description language at RTL, and then refined to a structural representation using the logic synthesis which produces a netlist that can be mapped on a library of standard cells or hard-macro blocks (blocks for which the layout is already available) for the final implementation. This structural representation is used to produce the final physical layout. However, there is still a large gap between the functional executable model level and the implementation level. In addition, since the verification of an integrated hardware and software system takes place after both components are completed, errors discovered in the verification phase are often uncorrectable. We claim that this gap can be reduced by leveraging the joint capabilities of UML and SystemC to provide a modeling framework for systems in which high-level functional models can be “refined” down towards an implementation model directly connected to the final physical implementation (see [9]). DAC Workshop, Anaheim, June 12, 2005 49 50 UML for SoC Design As shown in Fig. 1, the UML may improve the SoC design flow essentially in three ways: (i) the UML in a platform-independent manner can be adopted at system functional executable model level to describe the specification, like Simulink; (ii) the UML profile for SystemC can be used for the hardware description at the abstraction layers (functional untimed/timed, transactional, behavioral, bus cycle accurate) on top of the RTL layer; (iii) UML profiles tailored for programming languages like C/C++, Java, etc. can be used, instead, for the software parts. Moreover, the availability of UML profiles for other languages (JHDL, SystemVerilog, etc.) currently used in the SoC design and the definition of suitable PSM bridges - as conceived by the current MDA vision [6] - among profiles may allow to move from the description of a system in a given language to the description of the same system in another language at the same level of abstraction or lower. Fig. 1. New SoC Design flow 2 A UML 2.0 profile for SystemC The UML profile for the SystemC language is based on the UML 2.0 specification [7] and on the SystemC 2.0 specification [5]. The profile definition is organized in four parts, reflecting the architecture of the SystemC definition as built on top of the standard C++. The complete UML profile definition for SystemC is described in [10]. 1. The SystemC core layer - structure and communication - defines stereotypes of the core layer of SystemC which can be used in various UML structural diagrams to represent the structural and communication building blocks of a SystemC specification like modules, interfaces, ports and channels. 2. The SystemC core layer - behavior and synchronization - defines stereotypes of the core layer of SystemC which lead to a variation of the UML method state machines, called SystemC Process State Machine (see [8]), to allow high level specification of the SystemC processes functionality in modules and channels. 3. The SystemC core layer - data types - defines a UML class library to represent the set of SystemC data types. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 4. The SystemC layer of predefined channels, interfaces and ports provides concepts for the layer of the predefined channels, interfaces and ports of SystemC. These concepts are implemented both as a class library, built applying the basic group of stereotypes of the SystemC core layer (or the basic SystemC profile), and as a group of standalone stereotypes that specialize those of the SystemC core layer (the extended SystemC profile). 3 Tool Support In order to develop our SoC design flow, we decided to rely on tools supporting UML 2.0 with the standard extension mechanism of UML profiles, and (possible) model transformations. Using such UML tools allows modeling the system by means of a diagrammatic UML representation, then to refine it in a UML-like SystemC model and to perform code generation in SystemC. Our current implementation is based on the Enterprise Architect tool [3], but any other tool supporting UML 2.0 can be also used and easily customized since our profile has been defined relying only on the standard UML 2.0 specification instead of tool’s “implementations” of UML 2.0. We added to the Enterprise Architect the capability to generate complete SystemC code from the UML models for both structural and behavioral aspects. This feature can be obtained either by customizing the C++ code generation templates of the UML tool or by exporting the model in the standard XMI (XML Metadata Interchange) format and generating the SystemC code from it. 4 HW/SW co-design Our approach to SoC design trough UML allows modeling the hardware and software parts together in a unique UML environment. The hardware architecture is modeled by constructs from the UML profile for SystemC, so it can also be refined down to the register transfer level, modeling the details of the implementation. The application can be modeled in software at two levels of abstractions: transactional or instruction level. When modeled by transactions, it works as a library encapsulated in a SystemC module. Processes are associated to the software functional description to sustain its concurrent activity within the system, whereas communication is implemented by transactions that model the interactions with the hardware architecture. This level of abstraction allows testing the correctness of the application on a high level description of the hardware, focusing on the communication and on its performances. The application can be also modeled at the instruction level by integrating an instruction set simulator of the target processing unit within the SystemC environment, to execute the compiled application code together with the SystemC model that implements the hardware. In this case both hardware and software models provide cycle accurate simulation. DAC Workshop, Anaheim, June 12, 2005 51 52 UML for SoC Design 5 Case Study We provide an application example related to a system that implements an 802.11.a physical layer transmitter and receiver described at instruction level. Therefore from one side the C/C++ application code will be encapsulated as a library functions in a UML class. This class provides through ports the I/O interface of the software layer to the hardware system. From the other side a ISS encapsulation in UML is also provided, in order to represent all the elements of the system. The UML encapsulation of the ISS is built by the UML profile for SystemC, in order to generate a SystemC wrapper for the ISS and to allow an hw/sw cosimulation at transactional or cycle accurate level. The application code generated by UML diagrams – EA tool already provide this feature - will be executed by the LX ISS. Fig. 2. The StdBus module The system is composed by a VLIW processor developed in ST, called LX [4], with a dedicated hardware coprocessor that implements an FFT operation. The processor acts as a master to the hardware module and the memory components, where code and data are stored. The communication is realized by a system bus: in particular we use On Chip Configurable Network [1], a transactional level cycle accurate SystemC model available at [2]. All the blocks of this system are modeled in UML class diagrams using our profile, in order to automatically generate the SystemC code. As an example, Fig. 2 and Fig. 3 show the class diagram of the StdBus model and the state machine of the SC_THREAD stdbus_process. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Fig. 3. The stdbus_process state machine In Fig. 4 the UML composite structure diagram of the overall system is shown. It describes the hierarchical structure of the platform. Several UML object diagrams can describe different configuration scenarios. This separation allows generating different parametric platform instances starting from the same model, i.e. structure diagram. The design has been imported from the C++/SystemC reference description into EA, empowered by the UML 2.0 profile for SystemC, then the code generation has been tested to cross-check the generated C++ code and the original code. DAC Workshop, Anaheim, June 12, 2005 53 54 UML for SoC Design Fig. 4. The Platform internal structure Acknowledgements We would like to thank Marcello Coppola, Andrea Council, Stephane Curaba, Andrea Giorgi and Francesco Papariello for their precious work. References [1] M. Coppola, S. Curaba, M. D. Grammatikakis, G. Maruccia and F. Papariello, OCCN: A Network-On-Chip Modeling and Simulation Framework. In DATE 04. [2] M. Coppola, S. Curaba, M. Grammatikakis, G. Maruccia and F. Papariello On-Chip Communication Network: User Manual. At OCCN Project Website http://occn.sourceforge.net/ [3] The Enterprise Architect Tool. http://www.sparxsystems.com.au/ [4] P. Faraboschi, G. Brown, J. A. Fisher, G. Desoli, and F. Homewood. Lx: A Technology Platform for Customizable VLIW Embedded Processing. In Proceedings of International Symposium of Computer Architecture, June 2000. [5] G. Martin, S Swan, T. Grötker, and S.Liao System Design with SystemC. Kluwer Academic Publisher, 2002 [6] OMG. Model Driven Architecture. http://www.omg.org/mda/ [7] OMG. UML 2.0 Superstructure Final Adopted Specification, document ptc/04-10-02. [8] E. Riccobene, P. Scandurra. Modelling SystemC Process Behavior by the UML Method State Machines. In RISE 04, Springer-Verlag 2004. [9] E. Riccobene, P. Scandurra, A. Rosti, S. Bocchio. A SoC Design Methodology Based on a UML 2.0 Profile for SystemC. In DATE 05. [10] E. Riccobene, P. Scandurra, A. Rosti and S. Bocchio. A UML 2.0 Profile for SystemC. ST Microelectronics Technical Report, 2004. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Performance Analysis of Sequence Diagrams for SoC Design Alexander Viehl1 , Oliver Bringmann1 , and Wolfgang Rosenstiel2 1 FZI Forschungszentrum Informatik, Haid-und-Neu-Str. 10-14, 76131 Karlsruhe, Germany {viehl, bringmann}@fzi.de 2 Universität Tübingen, Sand 13, 72076 Tübingen, Germany [email protected] Abstract. Sequence Diagrams of the Unified Modeling Language (UML) are used for the description of the interaction and the collaboration of instances in systems. In UML2.0, sequence diagrams are extended by control flow constructs and timing annotations, which are important for SoC design. In this paper we present an approach for the analysis and the evaluation of the performance of systems described with Sequence Diagrams even at the design stage. The basis of our analysis is the detection of communications that synchronize the control flow of the corresponding processes and set them in relation. Using this knowledge, we are able to determine a global timing behavior and violations of this effected by preset constraints. Hence, it is also possible to detect potential conflicts on shared communication resources if there is a specification of the targeted architecture. This architectural description can be stated by the use of structured classes, that were introduced as a part of the UML2.0/SysML specification. With this kind of information it is possible to evaluate an SoC architecture at an early design stage. 1 Introduction The Unified Modeling Language (UML) is a general-purpose modeling language widely used in the software development process for the specification of systems or typical use cases. The requirements in the area of hardware design, especially in the area of Systems-on-Chips, demand for quantitive evaluations of different design alternatives. Even though the complexity of complete systems on chips is steadily increasing, the demanded time-to-market for them is shortening. The earlier design decisions can be verified, the earlier conflicts and violations of constraints can be recognized. Requirements like response times or throughput have to be considered and conflicts on shared resources have to be identified and cleared. The analysis of the control flow as represented in sequence diagrams, that support loops, alternative execution and several other new statements since UML2.0 [2] and the related communications allow the estimation of communication schedules and possible conflicts caused by overlaps in the schedules. The assumption is that the instances in the (time annotated) diagramm will be realized either as specialised hardware or as processors or microcontrollers executing DAC Workshop, Anaheim, June 12, 2005 55 56 UML for SoC Design software threads. Depending on the realisation and the partitioning of the instances, the communications will be handled as IPC between threads or they will be mapped to communication resources like on-chip-busses, on-chip-networks or dedicated wires. Depending on the targeted functional mapping and the selected communication architecture, the expected timing of the related blocks between the communications has to be estimated. Whereas for a single software task, worst case execution time (WCET) analysis is sufficient, it is not applicable for systems of communicating processes. We developed a method for timing analysis in time-annotated sequence diagrams to determine the influence of blocking communication on the timing behaviour of the system. Therefore the presented control flow and the timing information from the sequence diagram is transformed to a communication dependency graph (CDG). This kind of representation has a more formal semantics than the original format. The runtime of blocks between the communication events can be determined by execution time analysis of the existing behavioural description or by user annotations originating from the specification. With those information, it is possible to analyse the temporal behaviour of the cooperating processes. Our method is not restricted in use with the complete description of the system. Often some typical use cases, which embody the critical situations by the meaning of timing or communication of the envisaged system are modeled with sequence diagrams. The validation of these szenarios helps to detect presumable bottlenecks from the developers point of view without having to model the complete behaviour of all parts. As a constraint for our analysis, the targeted architecture has to be specified. For this specification, structured classes [9] provide a flexible framework to define arbitrary architectural designs. The previously determined results will be used to evaluate the defined architectural alternatives and decide if all constraints are met and the compliance with the specification. The combination of the performance estimation and the evaluation of specified architectures at an early design stage results in a very valuable approach in the area of SoC design. In the next section, we shortly present related work in the area of performance analysis in UML. Chapter 3 describes our approach to extract the semantics of sequence diagrams, to formalize the notation by reducing the amount of different used expressions. We present examples for this technique. Chapter 4 describes our communication analysis and illustrates the method using an example. The analysis of the mapping between the information stored in the sequence diagram and the architectural desription are shown in chapter 5. 2 Related Work The complexitity of tasks for the designer of SoC is steadily increasing. Decisions about the communication structure, the hardware/software partitioning, the speed and the type of microcontrollers and microprocessors have to be made. DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Subsequent changes in the configuration often need a redesign of the complete architecture. The application of UML in the design process of SoC tries to provide a structured view and an exchange mechanism. Analysing the relations presented with UML tries to compare preset constraints with the targeted architecture or exposes expected performance characteristics as throughput or response time. Several approaches aim towards a formalisation of the UML to avoid disaccords between developers and to provide better consistency between the different representation styles of UML [4, 1]. The different approaches can be initially distinguished by the elements of the UML standard they are examining. Sequence Diagrams are widely used in the analysis process. There are methods of performance engineering distributed software systems. On account of their targeted application domain, SoC problems like conflicts on shared ressources are not detected by these approaches [13, 8]. Additionally there has been presented a method to check timing consistency of sequence diagrams [5]. Other analytical models analyse time-enhanced UML-Diagrams with the aid of stochastic processes [7, 3, 6]. Whereas it delivers good results in application domains like mobile communication, we demand for worst case estimations in the area of SoC. Relating to this, there have been work towards communication analysis we are setting up our concept [10, 12]. Whereas the scope in these works concerns the analysis of implemented systems, we are focusing the design stage. 3 Analysis of Sequence Diagrams Sequence diagrams allow a graphical presentation of interactions and causal relations between instances in the system. The temporal behaviour is covered by UML2.0. The ability to specify constraints like maximum durations and characteristics as execution times and communication delays enable the description of various temporal behaviour and dependencies. Although they are easy to understand, the notation is due the arbitrary expressions not as formal as needed to be directly analysed with regard to performance aspects. The approach presented in this chapter demonstrates the transformation of sequence diagrams to communication dependency graphs (CDG). A CDG represents a consolidated representation of communications and the temporal and causal behaviour between them. Depending on the synchronisation behaviour, there exist four basic communication primitives. These primitives are classified by the characteristics of the sender and the receiver, depending on their synchronous or asynchronous behaviour. A communication dependency graph can be defined as follows: A CDG is denoted by CDG :=< VCDG , ECDG , ECOM , τCDG , lCDG >, where – VCDG is a set of nodes representing communication nodes or loops with unbounded data dependent delay. – ECDG ⊆ VCDG × VCDG is a set of directed edges describing the precedence dependencies between nodes. DAC Workshop, Anaheim, June 12, 2005 57 58 UML for SoC Design – ECOM ⊆ Vsend × Vrec , with Vsend = v ∈ VCDG : τCDG (v) ∈ sendasync , sendsync and Vrec = v ∈ VCDG : TCDG (v) ∈ receiveasync , receivesync is a set of directed edges describing the communication – The function τCDG (v) : VCDG → sendasync , sendsync , receiveasync , receivesync denotes the type of each node. – The edge weights are represented by the function lCDG : ECDG → N0 × N0 with minimal and maximal execution time lCDG (v1 , v2 ) = (csmin , csmax ) between the nodes v1 , v2 ∈ VCDG . The first step for the construction of the CDG is the identification of communication events as send and receive in the system described by sequence diagrams. These events embody the nodes of the CDG. Obviously this information can be directly adopted from the sequence charts. The paired nodes from each communication are connected by communication edges in the CDG. The control flow between these nodes is expressed by edges connecting nodes, if the lifeline of the instance in the sequence diagram connects both events directly without passing any other communication event. The needed precedence information can be extracted from the specified sequence diagram. The investigated representation style can contain several new expressions since version 2.0 of the UML standard, like loops, alternative and optional statements, that influence the control flow. Hence, these statements have to be transformed context and semantics preserving to the analysis graph, the CDG. Interaction occurences become inline expanded. The treatment of statecharts, that allow the parallel definition of states containing a behavioural description using sequence diagrams, and the switch between these depending on external events is in principle possible but out of the scope of this paper. After all, the timing informations contained in the sequence diagram have to be used to annotate the edges in the CDG. This informations can be assumed as constraints for the specified case or they can be initially derived by existing implementations with static timing analysis. For the annotation, the different possible expressions of time included in sequence diagrams have to be converted to durations as it is needed in the CDG. Process P1 Process P1 Process P2 Process P3 Process P2 (0, 0) Process P3 (0, 0) (0, 0) (0, 0) t=now {0..0} (2, 4) {2..4} Loop t..t+3 (0, 3) (1, 1) {1..2} {1..2} (1, 2) {2..3} (2, 3) {1..1} (1, 1) (0, 0) {0..0} t+1..t+2 (3, 7) (1, 1) {3..7} (1, 1) {1..1} t=now (1, 2) (1, 2) (0, 0) Fig. 1. (a) Time-annotated sequence diagram and (b) the related CDG DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design Figure 1 presents an example of a time annotated sequence diagram. Precondition for our later analysis steps is the consideration of the different statements and the check if the annotations lead to an absolutely defined CDG. The resulting CDG from the application of the algorithm is presented on the right side of the figure. The definition of multiple use cases as sequence diagram implies the transformation of each of them to a CDG. After the transfer of the content to our analysis format, we are able to perform communication analysis. 4 Communication Analysis The approach presented in this section allows the estimation of the temporal behaviour of concurrent processes. The representation of the processes is done by communications and the timing behaviour between these nodes as this is considered in the CDG. The set of use cases defined at the design stage as sequence diagrams can be later used as a test suite for the evaluation of architectural designs in the stages of the architectural modification and refinement . Objective of our communication analysis approach is the impact of blocking communications on the runtime behaviour of processes. These blocking communications synchronise the involved processes. Based on the communication dependency graph, a synchronicity condition can be formulated in order to describe the influence of blocking communicationsto the inter-process-synchronisation. Each communication edge embodies a potential candidate for a synchonisation point. Obviously, the blocking communication partner has to be reached before the non blocking one. Our algorithm for the calculation of synchronisation equations has been presented in [10]. The next step in our analysis towards the estimation of a given target architecture is the determination of a communication schedule, that describes the order of the communication of the processes using the results of the communication analysis. This kind of information can be used to gain knowledge about conflicts on shared (communication) ressources. The idea is, that the determined synchronisation points are setting the parallel processes into relation and allow to put all communications into a temporal order. The position of communications in a schedule depends on their duration an the jitter of the execution times and slacks in the control flow to any other communication. The result of the analysis can be presented by an access graph with potential overlapping intervals [11]. In the case of an overlap, it does not automatically implicate the parallel access to a shared ressource at the same time. Further analysis must attend the sequentiality of the communications ordered by the control flow in the CDG. Using the knowledge about conflicting access, now the specified architecture of the system can be examined. 5 Architectural Mapping The architecture of the system defines location, type and relation of the instances of the system. The access on shared ressources as communication busses can be DAC Workshop, Anaheim, June 12, 2005 59 60 UML for SoC Design analysed with the knowledge about the processes, their communication schedule and their architectural mapping. Structured classes provide a flexible and powerful framework for the definition of system architectures. An essential feature for the description of communication structures is the ability to define ports and connectors between the instances of the system. After having analysed the temporal behaviour of the communicating instances, we are now able to evaluate different hardware mappings. Therefore we use structured classes for defining an SoC architecture. With the knowledge of the communication schedule, we can now compare and estimate different architectures. The following Figure 2 shows two architectures for an SoC, mapping three communicating instances to structural elements. In both cases, they are connected to an on-chip-bus, the difference is a dedicated communication line connecting P1 and P2 and the architectural refinement, using concrete platforms. asm: SoC1 asm: SoC2 :P2 :P1 :OCB P3:Embedded Processor :P1 :P2 <<amba>> :OCB <<arm7>> P3: Embedded Processor Fig. 2. Modelling of SoC architectures described with UML2.0 structured classes/SysML assemblies Furthermore, the similarity of the semantics of ports and channels in SystemC provides a good basis for the automatic generation of structural code skeletons according to a graphically specified architecture. The resulting temporal behaviour of our analysis delivers the knowledge to back-annotate this information into the SystemC code as a basis for the simulation. 6 Conclusion The complexity of SoC is steadily increasing, demanding for the validation of typical use cases relating to a given architecture even at the design stage. We presented an approach that is able analyse the performance of typical use cases given by time-annotated sequence diagrams and structured classes. We can decide, if specified constrains are met. Another result of our analysis is a communication DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design schedule graph, we can use to evaluate a given architecture. The architectural description can be done by structured classes. This type of architectural description allows an architectural refinement and modification, and for every step of this, we are able to evaluate the architecture using the specified use cases. References 1. Gregor Engels, Jochen M. Küster, Reiko Heckel, and Luuk Groenewegen. A methodology for specifying and analyzing consistency of object-oriented behavioral models. In 8th European Software Engineering Conference and 9th ACM SIGSOFT Symp. on the Foundations of Software Engineering, 2001. 2. Object Management Group(OMG). Uml profile for schedulability, performance and time specification, final adopted specification. Technical report, OMG, March 2002. 3. Peter King and Rob Pooley. Derivation of petri net performance models from uml specifications of communications software. In Proceedings of the 11th International Conference on Computer Performance Evaluation, Modelling Techniques and Tools, 2000. 4. Jochen M. Küster and Joachim Stroop. Consistent design of embedded real-time systems with uml-rt. In Fourth International Symposium on Object-Oriented RealTime Distributed Computing, 2001. 5. Xuandong Li and Johan Lilius. Timing analysis of UML sequence diagrams. In Robert France and Bernhard Rumpe, editors, UML’99 - The Unified Modeling Language. Beyond the Standard. Second International Conference, Fort Collins, CO, USA, October 28-30. 1999, Proceedings, volume 1723 of LNCS, pages 661– 674. Springer, 1999. 6. Christoph Lindemann and Axel Thümmler. Performance analysis of the general packet radio service. In Proceedings of the 21th International Conference on Distributed Computer Systems, 2001. 7. Christoph Lindemann, Axel Thümmler, Alexander Klemm, Marco Lohmann, and Oliver P. Waldhorst. Performance analysis of time-enhanced uml diagrams based on stochastic processes. In Proceedings of the third international workshop on Software and performance, 2002. 8. Jose Merseguer and Javier Campos. Software performance modeling using uml and petri nets. In MASCOTS Tutorials, 2003. 9. SysML Partners. Systems modeling language (sysml) specification version 0.9. Technical report, SysML Partners, 2005. 10. Axel Siebenborn, Oliver Bringmann, and Wolfgang Rosenstiel. Worst-case performance analysis of parallel, communicating software processes. In Proceedings of the Tenth International Symposium on Hardware/Softwarw Codesign, 2002. 11. Axel Siebenborn, Oliver Bringmann, and Wolfgang Rosenstiel. Communication analysis for network on chip design. In International Conference on Parallel Computing in Electrical Engineering (PARELEC), 2004. 12. Axel Siebenborn, Oliver Bringmann, and Wolfgang Rosenstiel. Communication analysis for system on chip design. In Proceedings of the Design Automation and Test in Europe Conference (DATE), 2004. 13. Coonie U. Smith and Lloyd G. Williams. Performance and scalability of distributed software architectures: An spe approach. Parallel and Distributed Computing Practices, 2002. DAC Workshop, Anaheim, June 12, 2005 61 62 UML for SoC Design Embedded SW Design Exploration Using UML-based Estimation Tools Marcio F. da S. Oliveira1, Lisane Brisolara1, Flávio R. Wagner1, Luigi Carro1,2 1 Computer Science Institute, Federal University of Rio Grande do Sul (UFRGS), Brazil {mfsoliveira, lisane, flavio, carro}@inf.ufrgs.br 2 Electrical Engineering Department, UFRGS, Brazil [email protected] Abstract. This paper presents an approach for the estimation of memory, performance, and energy from an initial UML specification. It allows the designer to evaluate and compare different modeling solutions, thus supporting design space exploration at a very high abstraction level. An experiment demonstrates our approach, in which an application is modeled in different ways and the solutions are compared using the high-level estimates. Experimental results are presented and demonstrate the effectiveness of the estimates in an early design space exploration. These results present a very small error when software components are reused and their costs are already known, achieving errors that are smaller than 10%. 1 Introduction The increasing complexity of embedded systems design, which is derived from the amount of functionality that is required from these systems, together with the shortening of the life cycle of embedded products, results in a design scenario where productivity and quality are simultaneously required in order to deliver competitive products. Selic [1] emphasizes that the use of techniques starting from higher abstraction levels is crucial to the design success. Platform-based design and IP reuse are techniques that improve the design productivity [2]. In platform-based design, design derivatives are mainly configured by software, and software development is where most of the design time is spent. Moreover, in platform-based design, different granularities can be used to provide a rich and pre-characterized library of software and hardware components to rapidly assemble a system. Furthermore, this pre-characterized library reduces the uncertainty about the system properties. The UML language has gained in popularity as a tool for specification and design of embedded systems. Efforts that describe the use of UML during the different phases of an embedded system design can be found in [3]. It is widely known that design decisions taken at higher abstraction levels can lead to substantially superior improvements. This context suggests the support to a fast design space exploration in the early design steps. However, software engineers, DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design when developing an application using UML, do not have a concrete measure of the impact of their modeling decisions on issues such as performance and energy for a specific embedded platform. This paper proposes an approach that allows a better evaluation of modeling solutions, through the estimation of the final system physical characteristics directly from UML models, thus supporting a very early design space exploration. Our approach provides the estimation of memory, performance, and energy consumption for a system modeling solution. An experiment demonstrates that different UML modeling solutions for the same application result in different physical costs. When components are reused and the costs of their functions are previously known we achieve estimation errors smaller than 10%. It is shown that, by using our approach, the designer can really explore the system software architecture, already at the UML level. This paper is organized as follows. Section 2 gives an overview of related work. Section 3 introduces our proposal for embedded software design exploration. Section 4 presents the experiment that illustrates a scenario of design space exploration. Section 5 presents main conclusions and discusses future work. 2 Related Work Bernardi et al. [4] propose the automatic translation of state and sequence diagrams into a generalized stochastic Petri net and a composition of the resulting net models in order to reach an analysis goal. This proposal allows the analysis of the system execution time, but the operation times have to be manually included in the model. An UML profile and an methodology for performance modeling of UML-based systems are proposed by Theelen et al. [5]. The UML models are translated into an executable model specified by POOSL (Parallel Object-Oriented Specification Language). Some behavioral aspects and time delays can be specified in a probabilistic way, through provided libraries. However, the designer needs to go down the abstraction level from UML to POOSL to estimate system properties. Petriu and Woodside [6] present an approach that uses the UML-SPT profile, where desired values for performance measures are manually added to the model. A performance model is then derived, from which the performance analyses are computed by simulation or by analytical techniques. Smith et al. [7] propose a quantitative approach for system analysis, called SPE (Software Performance Engineering). SPE focuses on use cases and on the scenarios that describe them. It allows the identification of the workloads that are most significant to the performance. The sequence diagram representing a key scenario is translated into an execution graph. Software and computer resource requirements are then added to this graph and the model is solved. All previous works lack an efficient estimation method to obtain information related to performance, such as number of instructions or execution time, and usually this information must be manually specified in the models. Moreover, these approaches do not consider important costs for embedded systems, such as memory and energy consumption. This work proposes a multi-variable methodology, where DAC Workshop, Anaheim, June 12, 2005 63 64 UML for SoC Design energy and memory footprint can also be estimated, not only performance. Moreover, our approach is not based on simulation, thus requiring less time to provide estimates and less detail about the system implementation, when compared to other approaches. 3 Embedded Software Design Exploration Approach We propose an UML-based estimation approach that allows the estimation of the system properties by mapping the application model into a given pre-characterized platform. It can be used to support design space exploration at a very high abstraction level. In order to support the estimation process, rules for modeling the application and a way to represent information about a given platform have been defined. An estimation tool called SPEU has been developed to implement this approach. The UML diagrams used in the application model are Use Cases, Interaction Diagrams, and Class Diagrams. These diagrams can be decorated with UML-SPT stereotypes. Structural information can be specified in the class diagram, such as multiplicity of values. The behavioral information is captured from the interaction diagrams, in which we can specify interaction, conditional execution, and dependencies between execution scenarios. Access methods and delegations of these methods are usually employed in the object-oriented programming approach. In order to identify these methods, some restrictions are imposed to the designer: (i) the “get” or “set” prefix must precede the class field name that has its method invoked; (ii) if the class does not have a field specified in its method name, this means that the method delegates an access to another class; (iii) the suffix “Content” should be used, indicating that the method is accessing the structure like vector or matrix positions. A distinction between these methods is important because they have different costs. The platform model can contain information on processor architecture, API, operating system, application components, and device drivers. Currently, for the platform model, we use architectural aspects, scheduler and timer services, a real-time API [8], and a math library. As architectural model, we use information such as data types and instruction set (sizes and number of execution cycles). Also program and data memory allocation aspects are considered, including allocation rules of dynamic frame and reserved memory. When timer and scheduling services are required, the overhead added in the system should be specified. In the same way, the real-time API and the math library were characterized, including resource usage information. The estimation is evaluated for a key use case of the application, as proposed in [7]. Following this approach, the use cases that are critical to meet the application requirements are identified. After, key scenarios for these use cases are selected and represented using interaction diagrams. The estimates are computed for each scenario, and best-case and worst-case analyses can be performed. The estimation process starts with a static analysis of the application model, which does not require simulation. From the class diagrams, structural and static information, like memory required by classes are extracted. Moreover, access methods and number and types of parameters are also identified. Furthermore, DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design behavioral information is extracted from the interaction diagrams, including the number of method calls and of conditional and loop operations. From the interaction diagrams analysis, a pseudo-trace is generated that contains symbolic instructions like “getField”, “getMatrixContent”, “interactionExecution” and “loadParameterByValue”. The analysis result is mapped into the platform model, in order to obtain the estimates of system properties. The information provided by the platform memory model is used to determine the required memory size. Information about fields in classes, together with their multiplicity, is used to compute the data memory. Moreover, the worst-case scenario of nested invocation methods is identified, and the memory volume of allocated methods is computed. The sizes of instructions and method declarations are added to estimate the program memory size, using the information about the instruction set and program memory allocation model specified in the platform. Then, this result is added to the data memory to determine the total memory size. From the pseudo-trace and the performance and energy costs associated with the symbolic instructions, the performance and energy estimates can be computed. As there is no knowledge about the algorithms executed by the objects, just collaborations between objects and information on conditional and iteration executions are used. However, it is important to highlight that the behaviors that are most relevant to the performance estimation are captured by this methodology. 4 Experiments In order to illustrate a design space exploration scenario, alternative solutions for a wheelchair control system were developed. For each solution, the application model was mapped into the femtoJava platform [9], based on a Java microcontroller. Afterwards, these solutions are compared using the SPEU estimations as a guide. This experiment focuses on the wheelchair movement control, following an approach based on use cases, only the key use case and its main scenarios are evaluated. We illustrate our approach with the Movement Actuating scenario. Two different models of this scenario were developed and are illustrated in Fig 1 and Fig 2. The SPEU estimates for the two models are compared to the results obtained through a cycle-accurate simulation of the system implementation using the CACOPS simulator [10]. The Java byte codes of the application are obtained using SASHIMI [9], the femtoJava platform synthesis tool. The results for the first and second solutions are depicted in Table 1, where it can be observed a large variation between the performance and energy for each solution. The second solution presents better results, an improvement of 66.01% in its performance and of 65.93% in its energy consumption for the best-case analysis. Similar improvements can be also observed for the worst-case analysis. The best results in the second solution are mainly due to the use of a different concurrency model, in which the scheduler needs to control only one periodic task and the system is idle for more cycles. DAC Workshop, Anaheim, June 12, 2005 65 66 UML for SoC Design Fig. 1. First solution: Sequence for Movement Actuating Fig. 2. Second solution: Sequence for Movement Actuating As shown in Table 1, estimates for data memory are almost exact, while for the program memory errors of 4.6% are achieved. Performance estimates present an error of at most 7.7%, and energy consumption estimates are smaller than 8.7%. These results demonstrate that at a very high abstraction level it is already possible to explore the design space according to the system requirements, since alternative modeling solutions present different estimated results that are highly correlated to the results obtained in the real implementation. Very good estimates are obtained because the implementation reuses software components – scheduler and timer services, a real-time API, and a math library – that have been previously characterized for the hardware platform (the femtoJava processor). DAC Workshop, Anaheim, June 12, 2005 UML for SoC Design 67 Table 1. Design exploration results for the alternative solutions Property SPEU First Solution Exact Data memory 350 356 Program Memory 4,990 5,231 Performance best-case 20,732 21,089 Performance worst-case 27,068 27,856 Energy best-case 29,109,084 29,773,764 Energy worst-case 38,218,589 39,383,757 5 Error Second Solution SPEU Exact Error 00.27 351 354 04.60 4,983 5,266 01.69 7,045 7,217 2.82 23,725 25,710 03.28 9,915,714 10,250,063 02.95 33,298,001 36,476,430 00.84 04.64 02.38 07.72 03.26 08.71 Conclusions and Future Work This paper proposes an approach for embedded software design space exploration using an UML-based estimation tool. To support this approach, an estimation methodology has been implemented, which allows the evaluation of models while exploring the design space, in order to find a model that better fulfills the application requirements. As expected, knowledge on the costs of reused components allows considerable improvements in the estimates. Results have confirmed the hypothesis that it is possible to explore the design space based on modeling decisions taken at high levels of abstraction. Selecting the best modeling approach already at the UML level might result in considerable gains in terms of memory, performance, and energy consumption. Future work will address the study of MDA in order to improve the mapping of models. Moreover, an approach for better representing the platform and its services must be defined to facilitate the system modeling. Efforts to completely automate the estimation methodology are required to make it more usable. References 1. 2. 3. 4. 5. 6. Selic, B.: Models, Software Models and UML. UML for Real: Design of Embedded Real-Time Systems. Kluwer Academic Publishers, 2003. Chapter. 1, p. 1-16. Verkest, D.; Kunkel, J.; Schirrmeister, F.: System Level Design Using C++. In: Design, Automation and Test In Europe, Date, 2000, Paris, France, 2000. Lavagno, L.; Martin, G.; Selic, B.: UML for Real: Design of Embedded Real-Time Systems. Kluwer Academic Publishers, 2003. Bernardi, S.; Donatelli, S.; J. Merseguer: From UML Sequence Diagrams and StateCharts to Analyzable Petri Net models; In ACM Proc. of the 3rd Int. Workshop on Software and Performance (WOSP02), p. 35-45, Rome, July 2002. Theelen, B.D.; Putten, P.H.A. van der; Voeten, J.P.M.: Using the SHE method for UMLbased performance modeling; In: System Specification and Design Languages, Chapter 12, pp. 143-160. Kluwer Academic Publishers, 2003. Petriu, D.C.; Woodside, C. M.:. Performance analysis with UML: layered queueing models from the performance profile. In: UML for Real: Design of Embedded Real-Time Systems. Kluwer Academic Publishers, 2003. DAC Workshop, Anaheim, June 12, 2005 68 UML for SoC Design 7. Smith, C. U.; Williams, L. G. Software Performance Engineering. In: UML for Real: Design of Embedded Real-Time Systems. Kluwer Academic Publishers, 2003. 8. WEHRMEISTER, M. A., BECKER, L. B., PEREIRA, C. E. Optimizing Real-Time Embedded Systems Development Using a RTSJ-base API. Proceedings of Workshop on Java Technologies for Real-Time and Embedded Systems 2004. 9. Ito, S.; Carro, L.; Jacobi, R.: Making Java Work for Microcontroller Applications. In: IEEE Design & Test of Computers. vol. 18, n. 5, Sept-Oct 2001. 10. Beck, A. C.; Mattos, J. C. B.; Wagner, F. R.; Carro, L.: CACO-PS: A General Purpose Cycle-Accurate Configurable Power Simulator. In: SBCCI'03 – 16th Symposium on Integrated Circuits and Systems Design. São Paulo, Brazil, 2003. DAC Workshop, Anaheim, June 12, 2005