Combination of Hardware and Software Codesign

Question: Why hw/sw codesign of embedded systems in the future of digital systems?




Embedded system is the combination of hardware and software codesign which is designed for special functions within a large system. Some of large systems are given for examples such as medical equipments, customer appliance, automobiles, household appliances and all mobile devices. Embedded system hardware can be microcontroller or microprocessor which can be visualized in the form of Integrated Circuits (IC’s). Embedded software is a simple device which is directly programmed in the chip using the machine code language [1]. Co designing of hardware and software requires a right person who has a detailed knowledge in both the hardware and software design concepts. Hardware and software codesign can be simple defined as combining the hardware and software components into single concept for the flexibility in case of designing an application. Most of the applications need dedicated software and hardware units. Codesign improves design quality, design cycle time and cost.  It solves the dependability issues of the system with trade-off and interplay. Hardware and software codesign helps the embedded system to increase the feature of predictability by using two methods namely analysis method and syntheses methods. This system is designed by partitioning the entire system to give high performance within overall system requirements. When these systems are involved in the digital system then the large system has a greater advantage in predicting the outcomes of the process 


There are few problems in implementing hardware and software codesign.
•    Identifying the specification of the system
•    Hardware and software partitioning
•    Scheduling the resources
•    Modeling the hardware and software system during the design process


There are many features for implementing hardware and software codesign. 
•    During design cycle it combines both the hardware and software together to support the codesign.
•    It explores the large design space by using some analysis methods and synthesis methods.
•    It helps to analyze different between hardware and software partitioning.
•    It helps to verify the resources faster.
•    It helps to explore the design space faster.


In embedded system, technology is evolved by reducing the silicon fabrication geometries and it helps to enable integrating the complex platform into single system on a single chip (SoC). Since integrating the hardware and software system is the major process in hardware and software codesign this is the major part in implementing the codesign. Not only simple architecture can be formed, modern architecture also can be formed by considering more than one CPU subsystems to implement the software and hardware interconnection. To implement these designs in embedded system is a challenging work for the entire team to apply this software and hardware codesign [4]. 
In general, SoC engineers who implements classic software and hardware must know how to implement hardware and software codesign based on dependency between them. But while designing hardware and software codesign, the engineer must understand both the hardware and software design. For example multiprocessor SoCs like Nomadic and Nexperia uses digital signal processors and microcontrollers. SoC is used to provide a set of processors to execute the task concurrently which requires design methodologies to concentrate on selecting the processors in the arithmetic logic units and logic gates 


When hardware and software is designed separately then it will not meet all the requirements such as time, cost and performance. To avoid these issues alternative decision has been made by implementing Design space exploration. The difference between the functional model and the architectural model was explained by three steps. They are allocation of resources, binding the task and scheduling the task. Therefore the design space is given by the set of allocations, bindings and scheduling by considering possible permutations. If any factor is three times the target number of additional non functional requirements like cost, power, temperature is considered to be a feasible solution. The schedule code of the resources is generated as the initial specification of the process 
The system has to explore some kind of feasible implementations such as efficiency, finding one of the requirements, many numbers of requirements and the optimal ones. For exploring these things good coding algorithm should be suggested to explore the exploration cost and exploration strategies. Also classic single-objective search techniques should be used to evaluate non functional requirements. To perform the design exploration one has to give weighed function to perform the decision making process for the selecting the best design option. Not only space alone is explored, evaluation of flexibility is also considered in the view of design. In case of digital system flexibility is more important in performing the task so this is evaluated using different exploration tool in both individual project and different kinds of project at the abstraction level


Hardware and software codesign is evolving more because of its integrated circuit between the hardware and software requirements in the single chip. This makes the communication faster. The requirements is partitioned and analyzed by using analysis method and synthesis method for evaluating them. Based on the evaluation the space between the resources is explored. In large systems the application should be implemented based on the dependency between the hardware and software. So that both hardware and software can be integrated into single chip to access the applications. If the application is accessed by using SoC then it will be easier for the engineer to implement the system with simpler architecture design process. SoC can also be grouped to form multi SoC to increase the system process. So implementing hardware and software codesign helps the system to make faster in creating the design space and to verify the resource faster. The evolution of embedded system makes the digital system easier and simpler to implement the system whether it may be larger or smaller system.


TechTarget, “Embedded system”, 2016. [Online].  Available:  [Accessed: 16- Feb- 2018].
Grant Martin, “Will hardware and software be codesigned? [Review of ‘A Practical Introduction to Hardware/Software Codesign’]”, in IEEE Design & Test of Computers, 2011.
Jürgen Teich, “Hardware/Software Codesign: The Past, the Present, and Predicting the Future”, in Proceedings of the IEEE, 2012.
J. W. Tang, Y. W. Hau and M. Marsono, “Hardware/software partitioning of embedded System-on-Chip applications”, in Proceedings of the IFIP/IEEE International Conference on Very Large Scale Integration (VLSI-SoC), 2015.
V. Sklyarov and I. Skliarova, “On-chip hardware accelerators for data processing and combinatorial search”, in Proceedings of the 9th International Conference on Application of Information and Communication, 2012.
Lothar Thiele, “Design Space Exploration of Embedded Systems”,Computer Engineering and Networks Laboratory, 2006.

Place Order For A Top Grade Assignment Now

We have some amazing discount offers running for the students

Place Your Order


Get Quality Assignment Without Paying Upfront

Hire World's #1 Assignment Help Company

Place Your Order