The UML Formal Methods for SoC Design Sorin Manolache
Outline The UML – Sorin Manolache History and rationale UML-based design process Pros and cons Current status UML resources
Rationale The UML – Sorin Manolache “Specification, visualization, and documentation of models of software systems, including their structure and design” Grady Booch (OOAD), Jim Rumbaugh (OMT), Ivar Jacobsen (Objectory) ~ 1994 – 1997 Based on the OO philosophy as it was considered more suitable for complexity management Appeared as a unification and standardization of existing software modelling languages
Characteristics The UML – Sorin Manolache Graphical, 12 standard types of diagrams Structural: class, object, deployment, component Behaviour: use case, sequence, statechart, activity, collaboration Model management: packages, subsystems, models Concurrency (execution threads, active objects) Extended in order to capture timeliness requirements Supports simulation and possibly synthesis
Requirements The UML – Sorin Manolache Use cases Who are the users? What do they use the system for? (very coarse grained functionality)
Use Case Diagrams The UML – Sorin Manolache configure handover establish link measure transceive BTS BSC MS close link broadcast
Analysis The UML – Sorin Manolache Sequence diagrams For each use case, imagine a scenario Identification phase, which are the objects? How are they related? How do they collaborate? Timeliness requirements specification
Disassembler Sequence Diagrams The UML – Sorin Manolache DemodulatorDisassemblerDecipheringDeinterleaverConv. dec.Fire dec. 125 s 5s5s
Object Behaviour The UML – Sorin Manolache Harel's statecharts – the only thing which makes UML executable May capture concurrency and hierarchy
Statecharts The UML – Sorin Manolache Idle Error DeInterleave 1 Deinterleave 2 Deinterleave 3 tm(125 s) Deinterleave 4 Conv dec Fire dec evBurst/send(Deinterleaver1,data1) evBurst/send(Deinterleaver2,data2) evBurst/send(Deinterleaver3,data3) evBurst/send(Deinterleaver4,data4) evBlock/send(ConvDec,block) evConv/send(FireDec,block) evFire/send(--,block) handleFault
Structural View The UML – Sorin Manolache Structure of the functionality (software architecture) Similar to task graphs if we consider active objects Relationships between classes/objects Can lead to mapping Active objects to processing nodes Passive objects to memory/registers Association links to buses
Object Diagrams The UML – Sorin Manolache Deinterleaver Burst buffer int: size float: access latency float: power per bit Block buffer1 int: size float: access latency float: power per bit Controller Deinterleaver Conv decoder float: dealine Conv Dec addr: Input block addr: Output block float: Latency float: Power Decode Block buffer2 int: size float: access latency float: power per bit addr: Input burst addr: Output block float: Latency float: Power Deinterleave Fire Dec addr: Input block addr: Output block float: Latency float: Power Decode Output buffer int: size float: access latency float: power per bit Initiate decoding Handle error Report completion
Class Diagrams The UML – Sorin Manolache Deinterleaver Controller Deinterleaver Conv decoder float: dealine Conv Dec Decode Deinterleave Fire Dec Decode Buffer int: size float: access latency float: power per bit Deinterleave Initiate decoding Handle error Report completion Datapath elem Deinterleave addr: Input block addr: Output block float: Latency float: Power Decode 2 Datapath 3
Customization Mechanisms The UML – Sorin Manolache UML for HW/SW co-design? UML meta-model, model of modelling concepts Class, operation, event, state, etc. Extend those models (using OCL, Object Constraint Language) in the meta-model building thus new modelling concepts
Customization Mechanisms The UML – Sorin Manolache Examples of stereotypes: The actor is an object from the environment The singleton is the only allowed instance of a particular class (clock generator, global configuration file) Periodic events Interface object Some can be checked at “compile” time (singleton)
Pros and Cons The UML – Sorin Manolache Pros: Systematic design process Standard Graphical Extensible Implementation independent Design complexity management Cons: Semantic (improving, Action Semantics) Simulation/execution (some tools support it) Validation/verification/testing (some tools support it) Efficient synthesis (mainly to C and Java) Analysis (WCET, power) in the absence of hardware architecture information Tool support for extenstion mechanism
Status The UML – Sorin Manolache UML 2.0 adopted by OMG in June 2003 Tools : UML Profile for Schedulability, Performance and Time UML Profile for Testing underway G. Martin, L. Lavagno, J. Louis-Guerin propose at CODES2000 an UML Profile for Embedded Systems
UML Resources The UML – Sorin Manolache Formal specification documents Documentation Non-exhaustive list of tools Links (documentation, tutorials, tool vendors) Success stories (mainly large software projects – Xilinx) Description of their tool – Rhapsody Links to white papers