The traditional system design mode of hardware-in-the-software embedded system requires repeated modification and trial and error. The entire design process relies heavily on the designer's experience. The design cycle and development cost are high. In the process of repeated modification, it is often In some ways it departs from the original design requirements.
Software and hardware co-design provides a brand-new system design idea to solve the above problems. Based on system objectives, he comprehensively analyzes system hardware and software functions and existing resources to maximize the concurrency between systems hardware and software, and collaboratively design hardware and software architectures so that the system can work in the best working condition. This kind of design method can make full use of existing hardware and software resources, shorten the system development cycle, reduce development costs, improve system performance, and avoid the disadvantages caused by the independent design of software and hardware architectures.
Applying a design idea to actual product development is inseparable from the help of EDA tools. This article will also briefly introduce several more mature collaborative design EDA tools.
Comparison between collaborative design and traditional design methodsThe embedded system is composed of several functional modules. According to their nature, these functional modules can be divided into software modules and hardware modules. In the past decades, the design method of the system has undergone great changes. There are top-down design methods and modular design methods. They are generally hardware module-prioritized design methods. They are collectively referred to as traditional ones. Design method.
This design method divides hardware and software into two separate parts.
In the entire design process, the "priority of hardware" principle is usually used, that is, in the rough estimation of the software task requirements, the hardware design is first performed, and then the software design is performed on this hardware design platform. Due to the lack of a clear understanding of the software architecture and implementation mechanisms in the hardware design process, the hardware design work has a certain degree of blindness. His system optimization can only improve the performance of hardware/software due to the limitation of design space. It is impossible to make a better comprehensive optimization of the system. The final design result obtained is hard to make full use of hardware and software resources and it is difficult to adapt to modern complexities. Large-scale system design tasks.
The embedded system hardware and software co-design is to make the software design and hardware design as a whole parallel design, find the best combination of hardware and software, so that the system works efficiently.
One of the most important advantages of hardware/software co-design is that in the design process, hardware and software design interact. This interaction takes place at all stages and levels of the design process.
The design process fully embodies the synergy between hardware and software. When the hardware and software functions are allocated, the existing software and hardware resources are taken into account. In the design and simulation evaluation of the software and hardware functions, the software and hardware support each other. This allows the hardware and software function modules to be combined with each other early in the design and development process, so that early detection of problems can be solved early and avoid (at least can be reduced) in the later stages of design development, repeatedly modifying the system and the resulting series of problems, but also conducive to Tap the potential of the system, reduce the volume of the product, reduce the system cost, and improve the overall system performance.
Software and hardware co-design processIn general, the system design process of hardware/software co-design can be divided into four stages: system description, system design, simulation verification, and comprehensive implementation.
System description is a process of fully describing the function and performance of the embedded system to be designed using one or more system-level description languages, and establishing the system's software and hardware model. System modeling can be done manually by the designer using informal languages, or even natural languages, or with EDA tools. The manual completion can easily lead to inaccurate system descriptions, the need to modify the system model in the follow-up process, thus complicating system design and other issues, and excellent EDA tools can overcome these drawbacks.
For the embedded system, the system design can be divided into two stages: software and hardware function allocation and system mapping. The distribution of software and hardware functions is to determine which system functions are implemented by hardware modules and which system functions are implemented by software modules. Hardware generally provides better performance, while software is easier to develop and modify, and the cost is relatively low. Due to the configurability, programmability of hardware modules, and the hardware and firmware of certain software functions, some functions can be implemented in software as well as hardware, and the boundaries between hardware and software are not obvious. In addition, when assigning software and hardware functions, it is necessary to consider the resources that the market can provide, as well as system cost and development time. Therefore, the functional division of hardware and software is a complex and arduous process, and it is the most important part of the entire task flow.
The system mapping is based on the system description and the results of software and hardware tasks. It selects the software and hardware modules of the system and the specific implementation methods of their interfaces, integrates them, and finally determines the system architecture. Specifically, this process is to determine which hardware modules (such as full-custom chips, MCU, DSP, FPGA, memory, I/O interface components, etc.) and software modules (embedded operating systems, drivers, functions) the system will use. Communication methods (such as bus, shared memory, data channel, etc.) between modules and software and hardware modules and the specific implementation methods of these modules.
Simulation verification is the process of verifying the correctness of the system design. He evaluated the correctness of the design results so as to avoid the need for repeated modifications when problems were found during system implementation. In the process of system simulation and verification, the simulated working environment and actual use are very different. The interaction modes and effects of software and hardware are also different, which also makes it difficult to ensure the reliability of the system in the real environment. Therefore, the effectiveness of system simulation is limited.
The hardware and software synthesis is the specific production of software and hardware systems. After the simulation results are verified by the design results, the system can be produced according to the requirements of the system design. That is, the hardware and software are designed in accordance with the requirements of the aforementioned work, and they can work in a coordinated manner. The on-site experiment can be performed after the completion of the production.
Screen Guard,Ultra-Thin Screen Protector,Full Coverage Screen Protector,TPU Hydrogel Screen Protector,TPU Film,Screen Protection Film
Shenzhen Jianjiantong Technology Co., Ltd. , https://www.tpuprotector.com