You are on page 1of 28

Hardware Software Co-Design

ES/SE/SS ZG626, MEL ZG651


Session 1
Pawan Sharma
BITS Pilani ps@pilani.bits-pilani.ac.in
Pilani Campus 25/07/2021
Today’s Lecture

Course Overview
• Module: Introduction, Specification and
Modelling Concepts [T1 Ch 2, T2 Ch1, R2 Ch2]
– Introduction to Embedded System Design
– Challenges
– Introduction to Hardware/ Software Co-design

BITS Pilani, Pilani Campus


About the Course

• The course provides an introduction to the co-


design of hardware-software systems, focusing
on common underlying modeling concepts, the
design of hardware-software interfaces, and the
trade-offs between hardware and software
components.
• You get to use simulation tools to conduct
experiments with mixed hardware-software
systems in the area of embedded systems.

BITS Pilani, Pilani Campus


Why take this course?

• In classic embedded system design, hardware and software


components are developed independently by separate design teams.
• This leads to a slow and inefficient design process.
• There is general agreement in the design community that a combined
consideration of hardware and software design issues will lead to more
efficient systems and a more efficient design process.
• The course provides an introduction in hardware-software co-design.
• It outlines the basic strengths of hardware and software
implementations, and shows how to combine those into a successful
system design.
• Focus is on the commonalities in the design process of hardware and
software, as well as on the design of hardware-software interfaces

BITS Pilani, Pilani Campus


Outcomes

• Ability to understand the current and emerging


techniques which allows for the simultaneous design
of Hardware and Software considering the trade-offs
between dedicated hardware and dedicated software
that are becoming increasingly difficult to decide
upon in the early stages of a design.
• Deciding on trade-offs between flexibility and
performance of the digital system poses conceptual
problems on choosing the appropriate models, flow
of communication to and from the outside world,
performance estimations and considering the
constraints on simulation and debugging.

BITS Pilani, Pilani Campus


Background will help!!

Basic knowledge in the following areas:


• computer architecture
• digital design
• software design
• embedded systems.

BITS Pilani, Pilani Campus


Course Content

• Course material—PPTs and recorded videos will


be uploaded on Impartus platform
Text Book
• Patrick R. Schaumont, A Practical Introduction to
Hardware/Software Co-design, Springer, 2013
• Daniel D Gajski, Frank Vahid, Sanjay Narayan, Jie
Gong, Specification and Design of Embedded
Systems, Prentice Hall, 1994.

BITS Pilani, Pilani Campus


Reference Books
• Peter Marwedel, Embedded System Design, Springer 2003
• Jorgen Staunstrup, Wayne Wolf, Hardware / Software Co-Design:
Principles and Practice, Kluwer Academic, 1997
• G. DeMicheli, R. Ernst and W. Wolf, Readings in Hw/Sw Co-
design, M. Kaufmann, 2002,
• Hardware/Software Codesign. G. DeMicheli and M. Sami (eds.),
NATO ASI Series E, Vol. 310, 1996.
• Sanjaya Kumar, James H. Aylor, Barry W. Johnson, and Wm. A.
Wulf. The Codesign of Embedded Systems A Unified Hardware
Software Representation Kluwer, 1995
• Journal papers and Conference publications (important will be
given through course website)

BITS Pilani, Pilani Campus


Course Content

Introduction
• Introduction to ESD
• Introducing Hardware/Software Co-design
• The Driving Factors

Specification and Modeling Concepts


• Model Taxonomy
• State Oriented Models
• Activity Oriented Models
• Structure Oriented Models
• Data Oriented Models
• Heterogeneous Models

BITS Pilani, Pilani Campus


Modeling and Implementation Concepts
• Analysis of Data Flow Graph and Control Flow Graph
Implementation
• Data and Control Edges of C Program
• Translating C to Hardware

Specification Languages
• Characteristics of Conceptual Models
• Specification Requirements of ES
• Survey of Specification Languages

BITS Pilani, Pilani Campus


Architecture Taxonomy and Target Architecture
• Application Specific Architectures
• General Purpose Embedded Cores

Co-Simulation and Co-verification


• Introduction to Co-simulation
• Introduction to Co-verification

Hardware/Software Interfaces
• Connecting Hardware and Software
• Bus Transfers
• Synchronization Concepts
• Memory-Mapped Interfaces

BITS Pilani, Pilani Campus


System Partitioning
• Partitioning Issues
• Partitioning Algorithms

Hardware/Software Co-synthesis
• Classification
• Examples

Design Quality Estimation


• Quality Metrices
• Hardware Estimation and Software Estimation
Applications With Examples
• Video Camera
• DSP
• CNN

BITS Pilani, Pilani Campus


Laboratory Component

• System Design on Zynq SoC using Xilinx Vivado


System Design Tool
• Programming Languages: HDL,C/C++
• Remote Lab
• Can download software from Xilinx
• Two assignments (online)

BITS Pilani, Pilani Campus


Evaluation Component

EC Evaluation Component Duration Weightage Date & Time Nature of


No. (min) (%) Component

EC-1 Lab assignment 1 15 days 10 August, 16-30,


2021 Online
Lab Assignment 2 15 days 15 October 16-30,
2021
EC-2 Mid-Term Exam 2 hours 30 Friday, Open Book
24/09/2021 (AN)
2 PM – 4 PM
EC-3 Comprehensive Exam 2 hours 45 Friday, Open Book
12/11/2021 (AN)
2 PM – 4 PM

BITS Pilani, Pilani Campus


Embedded Systems
Embedded Systems
Application-specific systems which contain hardware and software
tailored for a particular task and are generally part of
system (e.g., industrial controllers)
 Characteristics
• Are dedicated to a particular application
• Include processors dedicated to specific functions
• Represent a subset of reactive (responsive to external inputs)
systems
• Contain real-time constraints
• Include requirements that span:
• Performance
• Reliability
• Form factor

BITS Pilani, Pilani Campus


Embedded Systems

• Ubiquitous computing

• Pervasive computing

• Ambient intelligence

BITS Pilani, Pilani Campus


• connected to the physical environment through sensors
collecting information about that environment and
actuators1 controlling that environment
• Dependable:
– safety-critical and therefore have to be dependable. Nuclear
power plants are an example
– Dependability encompasses the following aspects of a system:
• Reliability: Reliability is the probability that a system will not fail.
• Maintainability
• Availability
• Safety
• Security

BITS Pilani, Pilani Campus


Efficient
• Energy
• Code-size
• Run-time efficiency
• Weight
• Cost

BITS Pilani, Pilani Campus


• Embedded systems are dedicated towards a
certain application.
– For example, processors running control software in a
car or a train will always run that software, and there
will be no attempt to run a computer
– Running additional programs would make those
systems less dependable.
– Running additional programs is only feasible if
resources such as memory are unused. No unused
resources should be present in an efficient system.
– meet real-time constraints.

BITS Pilani, Pilani Campus


• embedded systems are reactive systems.
– Reactive systems can be thought of as being in a
certain state, waiting for an input.
– For each input, they perform some computation and
generate an output and a new state.

BITS Pilani, Pilani Campus


• Due to this set of common characteristics, it does
make sense to analyze common approaches for
designing embedded systems, instead of looking at
the different application areas only in isolation.
• Actually, not every embedded system will have all the
above characteristics.
• We can define the term “embedded system” also in
the following way: Information processing systems
meeting most of the characteristics listed above are
called embedded systems.

BITS Pilani, Pilani Campus


HW

SW

Embedded Systems: Application Domains

Banking and transaction


processing applications

Industrial controllers in factories

Home appliances

Cellular communications

Signal processing
applications

Automobile engine control units

BITS Pilani, Pilani Campus


• Embedded chips form the backbone of the
electronics driven world in which we live. ... they
are part of almost everything that runs on
electricity. According to quite a number of
forecasts, the embedded system market will soon
be much larger than the market for PC-like
systems..

BITS Pilani, Pilani Campus


Embedded Systems-Complexity
Issues
• Embedded systems have a predominant digital
component consisting of a hardware platform which
executes software application programs.
• systems are complex because of the interplay of different
components, which may be heterogeneous in nature.
• Consist of a very large number of elementary
constituents (e.g., electronic transistors, machine-level
instructions.
• Design reuse is essential
• Digital systems are programmable, and thus consist of
hardware and software components.

BITS Pilani, Pilani Campus


Introduction to HW/SW Co-Design

• Hardware/software co-design means meeting system-level objectives


by exploiting the synergism of hardware and software through their
concurrent design.
• It encompasses several problems:
– Co-specification. Creating specifications that describe both hardware and
software elements (and the relationships between them);
– Co-synthesis. Automatic or semi-automatic design of hardware and software
to meet a specification;
– Co-simulation. Simultaneous simulation of hardware and software elements,
often at different levels of abstraction.
• Next, we consider the design space of programmable components:
what distinguishes one component from the other, and how do we
select one in a given hardware–software codesign.
• A key observation is that there is a trade-off between flexibility and
efficiency.

BITS Pilani, Pilani Campus


Motivation and CoDesign
Approach
• Old practice dictates the separation of the hardware and software
paths early in the design cycle,
• software development does not influence hardware design and does
not track changes made during the hardware design phase.
• During system integration, the software and hardware are finally
combined.
• a more unified, cooperative approach to the design of
hardware/software systems is required, termed hardware/software
codesign
• Because the complexity of embedded systems is increasing, it is
becoming more important to employ decomposition techniques and
abstractions to manage this complexity.
• Some industrial representatives on a recent codesign panel felt that
providing a hierarchy of simulation tools at multiple levels of
abstraction will help

BITS Pilani, Pilani Campus


• Typically, the application functionality is partitioned into software
components that are running on the processor cores and hardware
components that are used to accelerate some parts of the application or
to provide interfaces to the environment.
• In the traditional design practice for such systems, software is usually
designed after the hardware architecture is fixed.

BITS Pilani, Pilani Campus


Current HW/SW Co-Design

BITS Pilani, Pilani Campus

You might also like