embedded system requirements, specification and modelling k. tatas sources: hermann kopetz,...
TRANSCRIPT
![Page 1: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/11.jpg)
11
Example
![Page 12: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/50.jpg)
50
Activity Diagram
![Page 51: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/51.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/52.jpg)
52
Sequence Diagram
![Page 53: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/53.jpg)
53
Collaboration Diagram
![Page 54: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/54.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/55.jpg)
55
Class Diagram
![Page 56: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/56.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/57.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/58.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/59.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/60.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/61.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/62.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/63.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/64.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/65.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/66.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/67.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/68.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/69.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/70.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/71.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/72.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/73.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/74.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/75.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/76.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/77.jpg)
77
Component Diagrams
![Page 78: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/78.jpg)
78
Deployment Diagrams
![Page 79: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/79.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/80.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/81.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/82.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/83.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/84.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/85.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/86.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/87.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/88.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/89.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/90.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/91.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/92.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/93.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/94.jpg)
94
Hierarchy
![Page 95: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/95.jpg)
95
Hierarchy
![Page 96: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/96.jpg)
96
Processes
![Page 97: Embedded System Requirements, Specification and Modelling K. Tatas Sources: Hermann Kopetz, “Real-Time Systems: Design Principles for Distributed Embedded](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/97.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/98.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/99.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/100.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/101.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/102.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/103.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/104.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/105.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/106.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/107.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022032604/56649e6c5503460f94b6a78a/html5/thumbnails/108.jpg)
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