220 likes | 376 Views
The embedded design life cycle. Product specification Hardware/software partitioning Hardware/software integration. Embedded design life cycle. Not as simple as we think (see figure) Much iteration and optimization Defects can force you back to beginning To overcome performance issues:
E N D
The embedded design life cycle • Product specification • Hardware/software partitioning • Hardware/software integration
Embedded design life cycle • Not as simple as we think (see figure) • Much iteration and optimization • Defects can force you back to beginning • To overcome performance issues: • Rewrite algorithms • Design custom hardware • Speed up processor • New processor
Embedded design life cycle • Economics and reality of design requirements can force decisions to be made before designers can consider the best design trade-offs • If its only performance and cost, then often a “clean sheet of paper” • Maintenance and upgrade can be a burden
Product specification • R&D engineers want to incorporate everything: • Wastes time and resource • Marketing and sales will usually execute the product specification • Engineers, however, should be involved in some customer tours • CPIF - Cost Plus Incentive-Fee (Contract) • Listening to the customer is good
Common success factors • Design team shares a common vision of the product • Failed projects probably did not share a common vision of project goals • Low cost medium performance versus time to market versus high performance and medium cost • Often overlooked part of the product specification phase - the requirement of the development tools
Common success factors • Embedded systems projects are late to market because engineers do not have access to the best tools • Tools should be part of the product specification • Prevents unrealistic expectations • is/is-not list, or musts and wants
Hardware/software partitioning • Embedded design usually involves hardware and software • Hardware utilizes Micro-processors, Micro-controllers and Digital Signal Processors but are neither used nor perceived as computers. Generally, software is used for features and flexibility, while hardware is used for performance. • What is the partitioning decision? • Different than application developers • Not a good idea to h/w enhance h/w to address part of a problem • The old days of co-processors (FPUs) are over - emulated
Algorithm • Steps required to implement a design • Combination of hardware components and software components • Hardware/software partitioning also involves the hows of partitioning the algorithm (software only, hardware only, combination) • Think about the simple algorithm of Fibonacci series
Embedded design requirements • Price sensitive • Leading edge performers • Non-standard • Market competitive • Proprietary • These are conflicting in many ways!
Embedded design requirements cont… • Algorithm partitioning depends on the choice of processor used in the design • Several hundreds to choose from! • Choice of CPU impacts the partitioning decision which impacts the tools decisions, etc…
Embedded design requirements cont… • Variety of possible choices • Experience required to arrive at optimal design • Solution surface is smooth • Adequate solution not far off from the best solution • Constraints dictate the decision path
Iteration and implementation • Hardware and software paths begin to diverge • Early design work before the walls go up (between H/W and S/W) • Design still very fluid • Major blocks partitioned • Boundary can still be moved • Iteration is common
Iteration and implementation • Hardware team • Simulation tools to model performance • Software team • Running code benchmarks on self contained systems (evaluation boards) • Convenient development environment until the hardware arrives! • Tools are helping (keep h/w, s/w engaged longer) • More tools on their way…
Hardware/software integration • Special tools and methods to manage the complexity • Process of integrating h/w and s/w requires debugging and discovery • Did the software team really understand the hardware spec?
Hardware/software integration • Real-time nature of embedded systems leads to highly complex, non-deterministic behavior • Can only be analyzed as it occurs • Accurately modeling and simulating behavior may be very time consuming • But tools are getting better!
Product testing and release • Testing is important when performance is key • Testing and reliability more stringent • Is system performing at close to its optimal capabilities?
Compliance testing • Embedded systems radiate a lot of radio frequency energy • “all electronic devices must be turned off…” • If embedded designer does not consider these things, compliance engineering (CE) will fail • Software must be running to pass this test • This is often overlooked
Maintaining and upgrading • Not many tools to support applications already in the field • 60% of embedded engineers maintain systems • Original engineer long gone • Must rely on experience, any existing documentation, etc… • Tools might be handy…
Maintaining and upgrading • “time to market” must become “time to reverse engineer” and “time to insight”