embedded system requirements, specification and modelling k. tatas sources: hermann kopetz,...

108
Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded Applications”, Springer, 2011 Wayne Wolf, “High-Performance Embedded Computing: Architectures, Applications, and Methodologies”, Morgan Kaufmann, 2006 Wayne Wolf, “Computers as components: Principles of embedded computing design”, Morgan Kaufmann Publishers, 2000

Upload: hugh-roberts

Post on 29-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

Embedded System Requirements, Specification and Modelling

K. TatasSources:

Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded Applications”, Springer, 2011Wayne Wolf, “High-Performance Embedded Computing: Architectures, Applications, and Methodologies”, Morgan Kaufmann, 2006Wayne Wolf, “Computers as components: Principles of embedded computing design”, Morgan Kaufmann Publishers, 2000

Page 2: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

2

Introduction Distributed Embedded System Models Design/Abstraction Levels Embedded System Design Flow Embedded System Requirements Embedded System Specifications Object-oriented Design Unified Modeling Language (UML) SystemC and TLM

Page 3: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

3

Classification of Embedded Systems

Real-time Hard deadline

Failsafe Fail-operational

Soft and firm deadline Non-Real-time

Page 4: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

4

Fail-Safe hard-deadline RT systems

If a safe state can be identified and quickly reached upon the occurrence of a failure, then we call the system fail-safe.

Failsafeness is a characteristic of the controlled object, not the computer system.

In case a failure is detected in a railway signaling system, it is possible to set all signals to red and thus stop all the trains in order to bring the system to a safe state.

In failsafe applications the computer system must have a high error-detection coverage.

Often a watchdog, is required to monitor the operation of the computer system and put it in safe state.

Page 5: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

5

Fail-Operational hard-deadline RT systems

In fail-operational applications, threre is no safe state a flight control system aboard an

airplane. The computer system must remain

operational and provide a minimal level of service even in the case of a failure to avoid a catastrophe

Page 6: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

6

Guaranteed response systems a design that operates correctly even in the

case of a peak load and fault scenario is a system with a guaranteed response.

The probability of failure of a perfect system with guaranteed response is reduced to the probability that the assumptions about the peak load and the number and types of faults do not hold in reality.

This probability is called assumption coverage [Pow95].

Guaranteed response systems require careful planning and extensive analysis during the design phase.

Page 7: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

7

Best-effort systems If an analytic response guarantee cannot be

given, we speak of a best-effort design. Best-effort systems do not require a rigorous

specification of the load- and fault-hypothesis. The design proceeds according to best effort the sufficiency of the design is established

during the test and integration phases. It is difficult to establish that a best-effort design

operates correctly in a rare-event scenario. Many non safety-critical real-time systems are

designed as best-effort systems.

Page 8: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

8

Resource adequacy Guaranteed response systems are based on the

principle of resource adequacy, i.e., there are enough computing resources available to handle the specified peak load and the fault scenario.

Many non safety-critical real-time system designs are based on the principle of resource inadequacy.

If providing sufficient resources to handle every possible situation is not economically viable, then a dynamic resource allocation strategy based on resource sharing and probabilistic arguments about the expected load and fault scenarios is used

Hard realtime systems must be designed according to the guaranteed response paradigm that requires the availability of adequate resources.

Page 9: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

9

Distributed RT system model From the POV of an outside observer, a real-

time (RT) system can be decomposed into three communicating subsystems:

a controlled object (the physical subsystem, the behavior of which is governed by the laws of physics),

a “distributed” computer subsystem (the cyber system, the behavior of which is governed by the programs that are executed on digital computers)

a human user or operator The distributed computer system consists of

computational nodes that interact by the exchange of messages.

A computational node can host one or more computational components.

Page 10: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

10

RT System block diagram

Page 11: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

11

Example

Page 12: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

12

Local clocks Every node of a distributed system has

a local oscillator that ticks with a frequency determined by the physical parameters of the oscillator.

Typical maximum drift rates r of physical clocks are in the range from 10^-2 to 10^-7 us/s, or lower, depending on the quality (and price) of the resonator

Local real-time clocks in each node have a a varying drift rate

Page 13: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

13

Clock synchronization The global ticks of all correct nodes must

occur within a specified precision P clock synchronization should not depend

on the correctness of a single clock A subset of the local oscillator’s microticks

is interpreted as the global time ticks at the node.

These global time ticks increment the local node’s global time counter.

Page 14: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

14

Event-Triggered Control Versus Time-Triggered Control

Event-triggered control is based on processor interrupts from external devices

Time-triggered control is based on polling external devices at regular intervals

Page 15: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

15

Example of event-triggered controlint led = 77;

volatile int state = LOW;

void setup(){  pinMode(led, OUTPUT);  attachInterrupt(1, blink, RISING);}

void loop(){  digitalWrite(led, state);}

void blink(){  state = !state;}

Page 16: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

16

Example of time-triggered controlint led = 77;int sw = 2;volatile int state = LOW;

void setup(){  pinMode(led, OUTPUT);

digitalWrite(led, state); }

void loop(){ if (digitalRead(sw)==HIGH)

state = !state; delay(1000); }

Page 17: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

17

Question

Which time of triggering would be more efficient for an elevator control system?

What do you think are the advantages/disadvantages of each?

Page 18: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

18

Power consumption The concept of energy refers to a scalar quantity that

describes the capability of work that can be performed by a system

The intensity of the work, that is the energy used up per unit of time, is called power. Energy is thus the integral of power over time.

There exist different forms of energy, such as potential energy, kinetic energy, thermal energy (heat), electrical energy, chemical energy, and radiation energy

The first law of thermodynamics, relating to the conservation of energy, states that in a closed system, the total sum of all forms of energy is constant.

The second law of thermodynamics states that thermal energy can only be partially transformed to other forms of energy.

Page 19: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

19

Energy Estimation

The energy that is needed by a computing device to execute a program can be

expressed as the sum of the following four terms:

Page 20: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

20

Computation energy The computation power main

component is dynamic power

And the energy is equal to Ecomp=Ceff*V^2*f*N Where N is the number of executed

instructions

Page 21: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

21

Memory energy Memory power consumption is higher

than computation power consumption Depends on the type of memory being

accessed Scratchpad memory that is within an IP-core. Shared on-chip memory accessed via the NoC. Off-chip memory, e.g., a large DRAM, that is

accessed via the NoC and a memory gateway to the memory chip.

gross estimation: a memory access for a 32 bytes block of on-chip memory requires 1000 nJ and access to the off-chip memory requires about twenty times as much, i.e., 20 mJ.

Page 22: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

22

Communication Energy

The energy needed by a sender Etx to transport a bit string of k bytes can be approximated by:

while the energy needed by the receiver Erx can be approximated by

Page 23: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

23

Energy for wired communication

Etr = d*Ceffunit*V^2 Where d is the distance Ceffunit approx 1 pF/cm in on-chip

interconnect V is the supply voltage

Page 24: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

24

Energy for wireless communication

For wireless communication, the transmit energy per bit can be approximated by

Etr = b*d^2

Page 25: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

25

ASIC vs FPGA vs CPU power consumption

Page 26: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

26

Energy Sources There are three energy sources:

energy from the power grid, energy from a battery energy harvested from the environment

Page 27: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

27

Batteries

An erratic power request pattern from the computer system could reduce the nominal battery power by as much as 50%

In this case an ultra capacitor is needed to spikes

Page 28: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

28

Example Evaluate the feasibility of an 2AA battery-

powered embedded system with an operating frequency of 500 MHz that:

Is idle 90% of the time There is no computation power when idle When not idle it executes 1 instruction per

clock cycle All instructions come from on-chip memory

and they are four bytes long The effective capacitance is 1nF It sends 1KB/h of data wirelessly to a

distance of 100 m b=100 pJ/(bit/m^2).

Page 29: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

29

Design/Abstraction Level

Algorithmic Level

Architecture Level

Register-Transfer Level

Gate Level

Transistor Level

Manual

Manual

Automatic

Automatic

Specification: Document, Pseudocode, block diagramTools: MATLAB, C++, SystemC, etc.Output: Verified algorithm

Specification: Document, block diagram, executableTools: UML, SystemCOutput: Hardware/Software partitioning

Specification: Document, block diagram, executableTools: VHDL, Verilog, SystemVerilog, SystemCOutput: RTL description

Page 30: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

30

Embedded System Design Flow Traditional Embedded System

Design Flow

Page 31: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

31

Problems with Traditional Design Flow Gaps (manual translation) between

Algorithm and Architecture level, and between Architecture level and RTL

Document specifications can be misinterpreted by design teams

Raising the level of abstraction that allows automatic translation to lower levels is required as system complexity increases

Software has to wait for hardware before being debugged

Page 32: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

32

Embedded System Requirements Essentially turning a concept into a

product Asking potential customers,

understanding their needs determining the best feature and

price point Sales and marketing usually

responsible R&D engineers should contribute

Page 33: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

33

Embedded System Requirements

Functional: describe each function of the system Input: Output: Processing:

Non-functional: system properties not related to its function

Cost Time-to-market Reliability Portability Maintainability Security

Page 34: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

34

Requirements should be Concise:

Brief yet complete and unambiguous Structured:

Requirements should be numbered Black-box view:

Not concerned with implementation Verifiable:

Able to check if they are met by the implementation

Page 35: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

35

Example: Digital Camera Requirements Draft Functional:

R1. Image capture Input: Light from lens Output: Pixels corresponding to light at 10.2 Mpixels

R2. Image compression Input: Pixels of uncompressed image Output: Pixels of compressed image (compression ratio: 4:1)

R3. Image Display Input: Pixels of compressed image Output: Pixels of display on 4x3 inch LCD display

R3.1 Zoom Image display Input: Pixels of compressed image, zoom area, zoom ratio Output: Pixels of display at

R4. Image transfer Input: Pixels of compressed image Output: USB stream of pixels of compressed image

Page 36: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

36

Example: Digital Camera Requirements Draft

Non-Functional: R5. Cost: 150€ R6. Weight: 800 g R7. Power consumption (number of

photographs away from mains) R8. Security

Page 37: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

37

Embedded System Specifications Natural language specifications are

attractive and still used. However, it lacks key requirements for specification techniques:

necessary to check specifications for completeness

absence of contradictions should be possible to derive

implementations from the specification in a systematic way

Therefore, specifications should be captured in machine readable, formal languages.

Page 38: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

38

Some required features of Specification languages

Hierarchy: Humans can only handle few objects Behavioral Structural

Timing: Real-time operation Event-handling: Reactive

External events Internal events

Concurrency: Hardware inherently concurrent Synchronization and communication: Executability: Should not be misinterpreted Readability: Both human and machine readable Portability: Should not be machine-dependent

Page 39: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

39

System modeling

Need languages to describe systems: useful across several levels of

abstraction; understandable within and between

organizations. Block diagrams are a start, but

don’t cover everything.

Page 40: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

40

Object-oriented design (1/3)

It encourages the design to be described as a number of interacting objects, rather than a few monolithic blocks of code

At least some of those objects will correspond to real pieces of software or hardware in the system. We can also use UML to model the outside world that interacts with our system.

Page 41: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

41

Object-oriented design (2/3)

Object-oriented specification can be seen in two complementary ways:

Object-oriented specification allows a system to be described in a way that closely models real-world objects and their interactions

Object-oriented specification provides a basic set of primitives that can be used to describe a systems with particular attributes, irrespective of the relationships of those system’s components to real-world objects.

Page 42: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

42

Object-oriented design (3/3)

Object-oriented (OO) design: A generalization of object-oriented programming.

Object = state + methods. State provides each object with its

own identity. Methods provide an abstract interface

to the object.

Page 43: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

43

OO implementation in C++

class display {pixels : pixeltype[IMAX,JMAX];

public:display() { }pixeltype pixel(int i, int j) { return pixels[i,j]; }void set_pixel(pixeltype val, int i, int j) { pixels[i,j] = val; }

}

Page 44: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

44

OO implementation in C

typedef struct { pixels: pixeltype[IMAX,JMAX]; } display;

display d1;pixeltype pixelval(pixel *px, int i, int j) { return px[i,j]; }

Page 45: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

45

Objects and classes

Class: object type. Class defines the object’s state

elements but state values may change over time.

Class defines the methods used to interact with all objects of that type. Each object has its own state.

Page 46: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

46

OO design principles

Some objects will closely correspond to real-world objects. Some objects may be useful only for

description or implementation. Objects provide interfaces to

read/write state, hiding the object’s implementation from the rest of the system.

Page 47: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

47

UML

Developed by Booch et al. Goals:

object-oriented; visual; useful at many levels of abstraction; usable for all aspects of design.

Page 48: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

48

UML diagrams (1/2) Structural Modeling Diagrams

Structure diagrams define the static architecture of a model.  Package diagrams are used to divide the model into logical

containers, or 'packages', and describe the interactions between them at a high level.

Class or Structural diagrams  define the basic building blocks of a model: the types, classes and general materials used to construct a full model.

Object diagrams show how instances of structural elements are related and used at run-time

Composite Structure diagrams provide a means of layering an element's structure and focusing on inner detail, construction and relationships

Component diagrams are used to model higher level or more complex structures, usually built up from one or more classes, and providing a well defined interface

Deployment diagrams show the physical disposition of significant artifacts within a real-world setting.

Page 49: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

49

UML diagrams (2/2) Behavioral Modeling Diagrams

Behavior diagrams capture the varieties of interaction and instantaneous states within a model as it 'executes' over time

Use Case diagrams  are used to model user/system interactions. They define behavior, requirements and constraints in the form of scripts or scenarios.

Activity diagrams  have a wide number of uses, from defining basic program flow, to capturing the decision points and actions within any generalized process.

State Machine diagrams are essential to understanding the instant to instant condition, or "run state" of a model when it executes.

Communication diagrams show the network, and sequence, of messages or communications between objects at run-time, during a collaboration instance.

Sequence diagrams  are closely related to communication diagrams and show the sequence of messages passed between objects using a vertical timeline.

Timing diagrams fuse sequence and state diagrams to provide a view of an object's state over time, and messages which modify that state.

Interaction Overview diagrams fuse activity and sequence diagrams to allow interaction fragments to be easily combined with decision points and flows.

Page 50: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

50

Activity Diagram

Page 51: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

51

Use Case Diagram

Page 52: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

52

Sequence Diagram

Page 53: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

53

Collaboration Diagram

Page 54: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

54

UML object

d1: Display

pixels: array[] of pixelselementsmenu_items

pixels is a2-D array

comment

object nameclass name

attributes

Page 55: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

55

Class Diagram

Page 56: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

56

UML class

Display

pixelselementsmenu_items

mouse_click()draw_box

operations

class name

Page 57: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

57

The class interface

The operations provide the abstract interface between the class’s implementation and other classes.

Operations may have arguments, return values.

An operation can examine and/or modify the object’s state.

Page 58: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

58

Choose your interface properly If the interface is too small/specialized:

object is hard to use for even one application; even harder to reuse.

If the interface is too large: class becomes too cumbersome for designers

to understand; implementation may be too slow; spec and implementation are probably buggy.

Page 59: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

59

Relationships between objects and classes

Association: objects communicate but one does not own the other.

Aggregation: a complex object is made of several smaller objects.

Composition: aggregation in which owner does not allow access to its components.

Generalization: define one class in terms of another.

Page 60: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

60

Class derivation

May want to define one class in terms of another. Derived class inherits attributes,

operations of base class.

Derived_class

Base_class

UMLgeneralization

Page 61: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

61

Class derivation exampleDisplay

pixelselementsmenu_items

pixel()set_pixel()mouse_click()draw_box

BW_display Color_map_display

baseclass

derived class

Page 62: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

62

Multiple inheritance

Speaker Display

Multimedia_display

base classes

derived class

Page 63: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

63

Links and associations

Link: describes relationships between objects.

Association: describes relationship between classes.

Page 64: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

64

Link example Link defines the contains relationship:

message

msg = msg1length = 1102

message

msg = msg2length = 2114

message set

count = 2

Page 65: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

65

Association example

message

msg: ADPCM_streamlength : integer

message set

count : integer

0..* 1

contains

# contained messages # containing message sets

Page 66: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

66

Stereotypes

Stereotype: recurring combination of elements in an object or class.

Example: <<foo>>

Page 67: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

67

Behavioral description

Several ways to describe behavior: internal view; external view.

Page 68: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

68

State machines

a b

state state name

transition

Page 69: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

69

Event-driven state machines

Behavioral descriptions are written as event-driven state machines. Machine changes state when

receiving an input. An event may come from inside or

outside of the system.

Page 70: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

70

Types of events

Signal: asynchronous event. Call: synchronized communication. Timer: activated by time.

Page 71: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

71

Signal event

<<signal>>mouse_click

leftorright: buttonx, y: position

declaration

a

b

mouse_click(x,y,button)

event description

Page 72: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

72

Call event

c d

draw_box(10,5,3,2,blue)

Page 73: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

73

Timer event

e f

tm(time-value)

Page 74: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

74

Example state machine

regionfound

got menuitem

calledmenu item

foundobject

objecthighlighted

start

finish

mouse_click(x,y,button)/find_region(region)

input/outputregion = menu/which_menu(i) call_menu(I)

region = drawing/find_object(objid) highlight(objid)

Page 75: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

75

Sequence diagram

Shows sequence of operations over time.

Relates behaviors of multiple objects.

Page 76: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

76

Sequence diagram example

m: Mouse d1: Display u: Menu

mouse_click(x,y,button)which_menu(x,y,i)

call_menu(i)

time

Page 77: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

77

Component Diagrams

Page 78: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

78

Deployment Diagrams

Page 79: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

79

Example

Write a brief requirements document for an ATM

Use UML diagrams to specify ATM functionality

Page 80: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

80

Traditional Design Methodology

Page 81: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

81

Languages traditionally used in Embedded System Design

Specification/modeling UML SDL C/C++

Hardware design VHDL Verilog

Software design C/C++ Java Assembly

Verification VHDL/Verilog SystemVerilog Tcl/tk Vera

Page 82: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

82

C/C++ unsuitable to describe hardware

No support for Signals, protocols No notion of time, Clocks, time sequenced

operations No concurrency (Hardware is inherently

concurrent, operates in parallel) No reactivity No hardware data types (Bit type, bit-vector

type, multi-valued logic types, signed and unsigned integer types, fixed-point types)

Page 83: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

83

SystemC A library of C++ classes

Processes (for concurrency) Clocks (for time) Modules, ports, signals (for hierarchy) Waiting, watching (for reactivity) Hardware data types

A modeling style for modeling systems consisting of multiple

design domains, abstraction levels, architectural components, real-life constraints

A light-weight simulation kernel for high-speed cycle-accurate simulation

Page 84: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

84

Design Language Comparison

UML Matlab SystemC SystemVerilog Verilog VHDL Vera

Requirements YES YES YES NO NO NO NO

Architecture YES YES YES NO NO NO NO

HW/SW NO NO YES NO NO NO NO

Behavior NO NO YES YES NO YES NO

Functional Verification

NO NO YES YES NO NO YES

Testbench NO NO YES YES YES YES YES

RTL NO NO YES YES YES YES NO

Gates NO NO NO YES YES YES NO

Transistors NO NO NO YES YES NO NO

Page 85: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

85

SystemC v1.0

VHDL-like capabilities Simulation kernel Fixed point arithmetic data types Signals (communication channels) Modules Module hierarchy

Page 86: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

86

C++ fundamental concepts

Classes: User-defined types Variables and functions can be

declared in a class Objects: Class instance Constructor: Function for

initializing objects

Page 87: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

87

SystemC v1.0 Modules are basic building blocks of a SystemC design

A module contains processes (functionality) and/or sub-modules (hierarchical structure)

SC_MODULE( module_name ) {// Declaration of module ports// Declaration of module signals// Declaration of processes// Declaration of sub-modulesSC_CTOR( module_name ) { // Module constructor// Specification of process type and sensitivity// Sub-module instantiation and port mapping}// Initialization of module signals};

Page 88: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

88

Ports External interface of a module Passing data from and to processes / sub-modules Triggering of actions within the module A port has a mode (direction) and a type

mode: in, out, inout type: C++ type, SystemC type, user-defined type// input port declarationsc_in< type > in_port_name;// output port declarationsc_out< type > out_port_name;// bidirectional port declarationsc_inout< type > inout_port_name;

Vector port / port array: sc_out< int > result [32];

Page 89: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

89

Signals Connects a port of one module to the port of

another module Local to a module Signal semantics is the same as VHDL and Verilog

deferred assignment semantics A signal has a type: C++ type, SystemC type,

user-defined type// signal declarationsc_signal< type > signal_name;

Vector signal / signal array:sc_signal< double > a[4];

Internal data storage not by signals but by local variables

Local variable types: C++ types, SystemC types, user-defined types

Page 90: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

90

Clocks SystemC provides a special object sc_clock Clocks generate timing signals to synchronize

events Multiple clocks with arbitrary phase relations are

supported Clock generation:

sc_clock clock_name (“label”, period, duty_ratio, offset, start_value);

Example: sc_clock my_clk (“CLK”, 20, 0.5, 5, true);

Clock binding: Example: my_module.clk( my_clk.signal() );

Page 91: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

91

SystemC data types sc_bit: 2-value single bit (‘0’, ‘1’) sc_logic: 4-value single bit (‘0’, ‘1’, ‘X’, ‘Z’) sc_int: 1 to 64 bit signed integer sc_uint: 1 to 64 bit unsigned integer sc_bigint: arbitrary sized signed integer sc_biguint: arbitrary sized unsigned integer sc_bv: arbitrary length 2-value vector sc_lv: arbitrary length 4-value vector sc_fixed: templated signed fixed point sc_ufixed: templated unsigned fixed point sc_fix: untemplated signed fixed point sc_ufix: untemplated unsigned fixed point

Page 92: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

92

Templated signed fixed point type: sc_fixed

sc_fixed< wl, iwl, q_mode, o_mode, n_bits > var_name (init_val);

Arguments: wl - total number of bits iwl - number of integer bits q_mode - quantization mode (optional) o_mode - overflow_mode (optional) n_bits - number of bits for overflow

mode (optional)

Page 93: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

93

Templated signed fixed point type: sc_fixed

Page 94: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

94

Hierarchy

Page 95: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

95

Hierarchy

Page 96: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

96

Processes

Page 97: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

97

SystemC v2.0

Complete library rewrite to upgrade into true SLDL

Events as primitive behavior triggers

Channels, Interfaces and Ports Much more powerful modeling

for Transaction Level

Page 98: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

98

SystemC 3.0 (future)

Modeling of OSs Support of embedded S/W

models

Page 99: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

99

Transaction-Level Modeling (TLM) with SystemC

TLM simulation is 100-10,000 times faster than RTL simulation

Page 100: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

100

Interfaces, ports/exports, signals

Page 101: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

101

Events

Three types of notification Instant (same time, same delta) Delayed (same time, next delta) Annotated (after annotated time)

Page 102: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

102

Simulation time If modeling at RTL, SystemC is not faster

than VHDL Simulation is faster when modeling at

higher level of abstraction Keep events to a minimum (use single events

instead of signals for synchronization) Use native C++ data types instead of

SystemC (VHDL-like) Use pointers instead of copying data

Page 103: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

103

Coding Styles

Untimed modeling (UT) Loosely-timed modeling (LT) Approximately-timed modeling

(AT)

Page 104: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

104

Untimed Model A functional model that can minimally

consist of a single execution thread No notion of time Can be executed without passage of

simulation time Useful for

validating algorithm partitioning into blocks Developing software on untimed model of

hardware Not useful for performance analysis

Page 105: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

105

Loosely-timed model

Uses set of interfaces that allows delay annotation

Communication is structured in two phases Begin request Begin response

Page 106: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

106

Loosely-timed modeling

Simulation time advances in quantums

Page 107: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

107

Approximately-timed modeling

Page 108: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded

108

TLM Design Flow

Implement algorithm in software Create algorithmic system level as

functional reference and partition into modules

Refine to LT model Perform HW/SW trade-off analysis Refine to AT