U5 HW SW Codesign
U5 HW SW Codesign
* The term ‘co-design’ implies that hardware and software design be considered concurrent and be done
together.
* In the traditional embedded system development approach, the hardware software partitioning is done at
an early stage and engineers from the software group take care of the software architecture development
and implementation, whereas engineers from the hardware group are responsible for building the hardware
required for the product.
* Once the hardware and software are ready, the integration is performed.
* The increasing competition in the commercial market and need for reduced ‘time-to-market’ the product
calls for a novel approach for embedded system design in which the hardware and software are
co-developed instead of independently developing both.
Q. What are the factors in the current design scene which support co-design?
i) The availability of hardware components like processors which are programmable-MCUs, DSP processors,
etc.
Note: Design is made easy because of efficient C compilers and hardware description languages that
automate design using simulation and synthesis tools.
# Steps in Hardware-Software Co-design:
* The first step in any design is the step of making a ‘requirements specifications’.
* The list of requirements includes functional aspects and non-functional aspects like speed, power, cost,
etc.
* The next step is to divide the functionality into two parts for the purpose of implementation, that is,
into hardware and software. This is called partitioning.
* Hardware and software design proceeds in two separate directions. But there is continuous interaction
between these two design teams, such that feedback, correction and re-design is done.
- Object-Oriented Model
# Data Flow Graph/Diagram (DFG) Model:
* The Data Flow Graph (DFG) model translates the data processing requirements into a data flow graph.
* This model emphasises on the data and operations on the data which transforms the input data to
output data .
* It is a visual model in which the operation on the data (process) is represented using a block (circle)
and data flow is represented using arrows.
* Embedded applications which are computational intensive and data driven are modeled using the DFG
model.
* Data Flow Graph does not consist of any conditional or control operation, it is simply a data driven
model.
* The control DFG (CDFG) is used for modelling applications involving conditional program execution.
Q. Now, what do we do with this kind of a system model? Do we realize these DFDs in hardware or
software?
Ans: They can be realized in either ways and that would have been decided at the time of ‘partitioning’ in
the first level
# State Machine Model:
* This is a very commonly used system model suggested for the design of hardware and software.
The State Machine model is used for modelling reactive or event-driven embedded systems whose
processing behaviour are dependent on state transitions.
* The idea of a ‘state machine’ is that, on the occurrence of events, the ‘state’ of the machine changes.
(A state can be thought of as a stored information possessed by the system, like for instance, the
contents of a number of registers).
* The State Machine model describes the system behaviour with ‘States’, ‘Events’, ‘Actions’ and
‘Transitions’.
* An event is an input to the state. The event acts as stimuli for state transition.
System Requirements:
* If the task is split into multiple subtasks, it is possible to tackle the CPU usage effectively, when the
subtask under execution goes to a wait or sleep mode, by switching the task execution.
Example: Implementation of the ‘Seat Belt Warning’ system in concurrent processing model.
These tasks cannot execute them randomly or sequentially. Their execution needed to be synchronised
through some mechanism.
# Object-Oriented Model:
* An Object-Oriented model disseminates a complex software requirement into simple well defined pieces
called objects.
* Object is an entity used for representing or modelling a particular piece of the system.
* A class is an abstract description of a set of objects and it can be considered as a ‘blueprint’ of an object.
# Introduction to Unified Modeling Language (UML):
* It consists of an integrated set of diagrams for capturing the processing requirement during system design.
- Things
- Relationships
- Diagrams