Hardware and software codesign is important for complex embedded systems as the hardware and software influence each other. The key steps are functional design, partitioning into hardware and software, designing each part, and co-simulation and co-synthesis. Effective embedded product lifecycle management involves phases like requirements analysis, design, implementation, verification, deployment, support and retirement. It helps ensure the development process is systematic and the final product meets requirements.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
10 views
Chapter 17
Hardware and software codesign is important for complex embedded systems as the hardware and software influence each other. The key steps are functional design, partitioning into hardware and software, designing each part, and co-simulation and co-synthesis. Effective embedded product lifecycle management involves phases like requirements analysis, design, implementation, verification, deployment, support and retirement. It helps ensure the development process is systematic and the final product meets requirements.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 49
Hardware Software Co-design and Embedded
Product development lifecyle management:
Hardware Software Co-design • Design of ES involves two essential parts of design i.e. Hardware and software, both are equally important
• Because in complex system, hardware and software
design influence each other and therefore should be in done in structured and systematic way.
• Co-design implies that hardware and software design
be considered concurrent and be done together Hardware Software Co-design • Different from thinking that hardware should be designed first and software should be taken care of later and then ported into hardware.
• Because of growing complexity of ES,
techniques for supporting hardware software co-design have been developed in order to permit the joint specification design and synthesis of hardware software systems. Factors in current design scene which support co-design
• The availability of hardware components like
processors which are programmable-MCUs, DSP processors etc. –fall in this category
• The availability of re-configurable hardware like
FPGAs and CPLDs.
• Design is made easy because of efficient C compilers
and hardware description languages that automate design using synthesis and simulation tools. Steps in Codesign 1. Functional Design 2. Mapping/Partitioning 3. Design of hardware and Software 4. Co-simulation and co-synthesis Co-design illustrated with steps in development process Functional Design • A system should be functionally correct.
• For this to be ensured the behaviour of system should be
specified correctly.
• Behavioural model should be made first .
• A set of inputs, set of outputs and mapping between two
constitutes the behaviour and is equivalent to defining the system.
• This description is independent of HW and SW, several
representations may be utilized. Mapping/ Partitioning • The next step is to divide the functionality into two parts for implementation into hardware and software called partitioning.
• Decision on which parts are best implemented in
hardware and which in software , makes an impact on factors like speed, power, performance etc.
• Partitioning also means that design is broken down into
smaller units each of which has defined ‘functionality’. This idea applies to hardware as well as software. Mapping/ Partitioning • Mapping also implies that a particular function is mapped to that is assigned to be performed by specified block.
• There is continual interaction between two
partitions as illustrated by integrated modeling. Design of Hardware and Software • Hardware and software design proceed in two separate directions. But there is continuous interaction between two design teams such that feedback, correction and re- design is done.
• Once hardware and software designs are
completed, the system is integrated and tested and then put into operation Co-simulation and Co-synthesis
• Simulation implies testing of functionality
without actual implementation
• Synthesis means the final realization of
designed product.
• Co-synthesis means that software and
hardware are to be integrated and realized Modeling of system • A model is conceptual notion for expressing function of a system
• Embedded systems are reactive systems which
respond to events.
• Systems can be designed using many techniques
i. Data/ control Diagrams ii. Concurrent Models iii. Finite States Machine i. Data Flow Diagram/DFD • In such a model, it is flow of data alone that is taken into consideration.
• It is a data driven model
Fig: Flow of data in communication system
DFD • Each box is subsystem which is data driven.
• A particular box obtains
data as input from previous block
• Each functional block may
need to wait till it gets processed data from previous block Data flow Diagram for A=xy+yz Control/Data Flow graph •This is data flow graph with control added to it.
•Conditional processing activities fit into this type of
graph Do we realize DFDs into Hardware or Software • They can be realized either ways and that would have been decided at time of partitioning in first level How flow chart different from DFG • Flowchart represents ‘control flow’ only, while a DFG shows ‘data flow’ ii. Concurrent Processes • These are the processes in which activities are scheduled to happen concurrently.
• Activities are performed actually in parallel or it is
‘pseudo parallelism’ that occurs, depends on the system
• Concurrency is to be thought of software, then tools for
software design should ensure the correct implementation for inter-process communications with synchronization ii. Concurrent Processes • In hardware design, the idea of concurrency appears.
• All the parts of circuit are to be work in parallel, the
design of hardware finally boils down to writing codes with concurrent statements.
• There is communication between these processes/
statements and hardware is finally realized from such concurrent code which leads to hardware structure Example Example Concurrent Process iii. Finite state Machine • The idea of state machine is that on occurrence of event, the state of machine changes.
• FSM is defined by three quantities input, state and
output. It is change in input which function as required event .
• For bigger systems, there is output logic block for
each change of state the output changes depending on function represented by output logic block. Example 1(Seat belt control used in Cars) Example2(Traffic Light Control) Embedded Product Development Lifecycle Management • Consider an example of building an house. • Flow of phases will be as shown in fig. Different phases involved in building a house Embedded Product Development • Compare the phases of house building with with phases of building an embedded product. • Steps are not same but mechanism of planning and development work here also Big Bang Model • Developer receives list of requirements • Developer works in isolation for some time • Developer delivers the result to customer • Developer hopes the client is satisfied But developing a sophisticated embedded product is not done by just one person. There are hardware and software developers, managers etc. Why is EDLC Management considered to be important? • In early phases of embedded revolution the embedded product was not really a ‘big deal’. • The product was usually small and did not involve high-end technology. • Now these products are developed by many Well- established companies usually have a definite action plan and activities are done from beginning to end. • How well the action plan and activities are done, reflect on final product Why is EDLC Management considered to be important? • Better product from better manufacturers- they follow best practices for product development. • There are bench marks using which Companies are rating. • Companies having better ratings and deliver better product because they follow model for product development Important factors in technology Management Phases of EDLC 1. Innovate 2. Analyse 3. Design 4. Implement 5. Verify 6. Deploy 7. Support 8. Retire Innovate/Conceptualize • When idea of product takes shape • Phase of dreaming when a company wonders whether it can introduce an entirely new product or • ‘me too’ product-product already available in market, but company is introducing its new version of product Analyse • Phase of analysing the requirements and specifications of intended product Formally First stage . In this steps are i. Make a formal and thorough feasibility study including investment and return expected. ii. Make a list of requirements of product including its specifications (electrical, mechanical, packaging, appearance and use interface) iii. Analyse requirements and make sure they can be implemented practically. Design the intended product i. Propose a prototype ii. Partition the prototype design into hardware and software iii. Do functional modelling for the hardware and software Implement the Design • Choose hardware components • Design the hardware • Generate the code and test it • Integrate the hardware and software and test it Perform Verification System level verification The integrated system is verified against the requirements made in phase ii to confirm that they match Formalize and Deploy • In this phase, field trials, reliability and quality tests are conducted. • after these are completed the product is deployed in the market • If product was built for specific customer, it is supplied to customer after training suitable no. of persons • Most critical Phase—for companies with proven track records have an easier time in this phase Sustain and support • Once the product is launched in the market, it is important to collect feedback from users, provide support to understand the product better and give solution for bugs detected in this phase • A maintenance group should be in action all time along with marketing team to improve the image of the product Retire • No product or concept lasts for ever • In today’s dynamic world, rapid obsolescence of electronic products is rule rather than the expectation • Company should be ready to allow retirement for the product before it dies a natural death • In either case there is possibility of rebirth • Manufacturer can give a rebirth to product in a new, fresh and advanced form with new ideas, concept and features Lifecycle Models • Water Fall Model Water Fall Model
• Based on Serialization of development phases
• One phase flows into next Demerits • All requirements must be known before hand, as there is no phase which goes back and makes a correction • There is no opportunity for customer to preview and correct the system Waterfall Model With backflow Waterfall Model With backflow • Each phase has a backflow • Correction to immediate previous stage is possible based on the feedback at the end of each phase V Model • Each phase and corresponding test or validation • Tests are conducted at end of each phase before proceeding to next phase Advantages i. Verification and validation of product in early stages of development ii. Deliverable at each stage is tested one iii. Once each phase is tested and verified, it is marked as milestone in development process V Model Disadvantages • Dies not easily handle dynamic changes in requirements • Does not contain risk analysis activities The Iterative Model The Iterative Model • Waterfall model executes many times and each iteration turn of wheel result in a prototype. • Such in complete models are subject to testing, analysis and re-design. • The design evolves iteratively. • Such a model is flexible and risk management is automatically taken care of Risk in this context • The customer is not clear about what he want and keeps changing his requirements as project progresses. • New trends and technology appears, and there is the need to incorporate these also in the product • Designers and developers may be inexperienced in this domain