02 Embedded Design Life Cycle
02 Embedded Design Life Cycle
02 Embedded Design Life Cycle
Cycle
Embedded System Design 14EC2029
Dr. S. Paul Sathiyan
designed
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
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
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
Simulation Software
37 % 20 % 31 % 12 %
51 %
• 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
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.