written 3.5 years ago by |
In hardward and software co-design the hardware and software must be designed together to make sure that the implementation not only functions properly but also meets performance, cost and reliability goals
The following are the major Subtasks of Embedded System Design:
Modelling the system to be designed and finding the constraints
- Experimenting with different algorithms and their preliminary evaluation
- Factoring the task into smaller subtasks and modeling their interaction
Refinement of the hardware and software
Hardware-Software partitioning, i.e., allocating the tasks into hardware, software running on custom hardware or general purpose hardware
Scheduling i.e. allocation of time steps for several modules sharing the same resource
Implementation: Actual hardware binding and software code generation
Simulation and Validation
Iterate if necessary
Besides partitioning of Hardware and software it also requires Hardware Software Co-design. Traditional design is that software and hardware partitioning is done at an early stage and development henceforth proceeds independently. CAD tools are then focused towards hardware synthesis. For embedded systems we need several components like DSPs, microprocessors, network and bus interface etc. Hardware-Software co-design allows hardware and software design to proceed in parallel with interactions and feedback between the two processes. It also evaluates tradeoffs and hence performance yields ultimate result.