Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

02 Embedded Design Life Cycle

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Embedded Design Life

Cycle
Embedded System Design 14EC2029
Dr. S. Paul Sathiyan

KITS | EEE | VER 1.1 | AY 2018 2019


Agenda
• Introduction
• Embedded Design life Cycle (ad nauseam)
Introduction
• Almost both embedded software and Hardware are designed in parallel

• This simultaneous design process heavily influence how systems are

designed

ad nauseam signifies that the topic in question has been discussed


extensively, and that those involved in the discussion have grown tired of it.
Embedded design life cycle

Time
▪ ESD Life Cycle Proceeds through 7 phases of Design Life Cycle
▪ A considerable amount of iteration and optimization occurs within phases and
between phases.
Embedded design life cycle
Hardware / Software Partitioning

Someone must decide which portion of the


problem will be solved in hardware and which in
software.
Design implementation steps of the concept of the
algorithm can be thought as the combination of
hardware components and software components.

Each of these hardware/software partitioning examples implements an algorithm.


The algorithm can be build
• Purely in software
• Purely in hardware
• Combination of the two
Embedded design life cycle
Hardware / Software Partitioning
Algorithm begin Purely in software

CPU FPU
Application developers, who normally work with pre-defined hardware resources, may
have difficulty adjusting to the notion that the hardware can be enhanced to address
any arbitrary portion of the problem.
Example : CPU with and without Floating Point Unit (FPUs)
Embedded design life cycle
Hardware / Software Partitioning
Algorithm begin Purely in software

CPU FPU
If the PC did not have an FPU, the application code had to trap the floating-point
instructions and execute an exception or trap routine to emulate the behavior of the
hardware FPU in software. Of course, this was much slower than having the FPU on
your motherboard, but at least the code ran.
Embedded design life cycle
Hardware / Software Partitioning
Algorithm begin Purely in Hardware

ISA type PCI type

Adding a Modem card (ISA type) which contains the


modulation/demodulation circuitry on the board to the PC
For less money, however, you can purchase a Winmodem that plugs
into a PCI slot and uses your PC’s CPU to directly handle the modem
functions.
Embedded design life cycle
Hardware / Software Partitioning
Algorithm begin Combination of Hardware and Software

High-performance video card is to game speed.


Embedded design life cycle
Hardware / Software Partitioning
Eg : Design of Laser Printer Algorithm

The processor places the incoming data stream — via the parallel port, RS-232C serial port,
USB port, or Ethernet port — into a memory buffer.
These two very different design philosophies are successfully applied to the design
of laser printers in two real-world companies today.
• One company has highly developed its ability to fine-tune the processor performance
to minimize the need for specialized hardware.
• The other company thinks nothing of throwing a team of ASIC designers at the
problem.
Embedded design life cycle
Hardware / Software Partitioning
Partitioning is highly complex
Many Embedded System designs require
• Price sensitive
• Leading-edge performers
• Non-standard Conflicting requirements
• Market competitive
• Proprietary

The choice of the CPU impacts the partitioning decision which impacts the tools
decisions, and so on.
Given this n-space of possible choices, the designer or design team must rely on
experience to arrive at an optimal design.
When the design exercise isn’t well understood, the decision process becomes much
more interesting.
Embedded design life cycle
Iteration and Implementation
Before Hardware and Software Teams Stop Communicating

H/W Design
H/W and
S/W Blurred area Implemen
Partition tation
S/W Design

• Blurred area between implementation and hardware/software partitioning in which the


hardware and software paths diverge
• The design is still very fluid in this phase. Even though major blocks might be partitioned
between the hardware components and the software components, plenty of leeway
remains to move these boundaries as more of the design constraints are understood and
modeled.
Embedded design life cycle
Iteration and Implementation
Emulation Environment (Virtual Testing)

Simulation Software

H/W Designer To model the performance of the


processor and memory systems.

Emulation Boards • Software designers running code benchmarks


on self-contained Single Board Computers /
evaluation boards that use the target micro
processor.
• Performance of the These single-board
S/W Designer computers are often referred to as evaluation
boards because they evaluate the performance of
the microprocessor by running test code on it.
• Evaluation board also provides a convenient
software design and debug environment until the
real system hardware becomes available.
Embedded design life cycle
Detailed H/W and S/W Design

System Specification HW & SW Design & Prototype System


Debug Debug Test
and Design

37 % 20 % 31 % 12 %

51 %

Cost to fix bug at different phases

Maintenance and Upgrade


Embedded design life cycle
H/W and S/W Integration

• The hardware/software integration phase of the


development cycle must have special tools and
methods to manage the complexity.
• Discovery is an especially apt term because the
software team now finds out whether it really
understood the hardware specification document
provided by the hardware team.
Embedded design life cycle
H/W and S/W Integration

• One of the problems/discoveries found is


• The hardware designer assumes big endian order.
• The software designer assumes little endian byte order.

• The port is memory mapped at address 0x400000.


• Eight bits of the word are the data portion of the port, and the other eight bits are the
status portion of the port.

• Even though the hardware designer might specify what bits are status and what bits
are data, the software designer could easily assign the wrong port address if writes to
the port are done as byte accesses.
Embedded design life cycle
Debugging (Correction) an Embedded System

• Run control — The ability to start, stop, peak, and poke the processor and memory.

• Memory substitution — Replacing ROM-based memory with RAM for rapid and easy code
download, debug, and repair cycles.

• Real-time analysis — Following code flow in real time with real-time trace analysis.

Running an embedded program under a debugger can slow the program down by one or
Difficulties

more orders of magnitude

Sometimes it will be awful to try to debug a software module when the source of the
problem lies in the underlying hardware or the operating system.
Embedded design life cycle
Procedure Testing and Release

• Product testing takes on special significance when the performance of the embedded
system has life or death consequences attached.

• You can shrug off an occasional lock-up of your PC, but you can ill-afford a software failure,
if the PC controls a nuclear power generating station’s emergency system

• Testing is more than making sure the software doesn’t crash at a critical moment.

• Embedded systems usually have extremely tight design margins to meet cost goals and
performance across its optimal capabilities.
Embedded design life cycle
Maintaining and Upgrading Existing Products

• The majority of embedded system designers (around 60 percent) maintain and upgrade
existing products, rather than design new products.

• Most of these engineers were not members of the original design team for a particular
product, so they must rely on only their experience, their skills, the existing documentation,
and the old product to understand the original design well enough to maintain and improve
it.

You might also like