Chapter 4: FPGA-based Embedded Hardware System for Graphics Applications ······
4.5 FPGA-based ES Design Flow ··························································
The hardware is good at simple repeated operations whereas software does complex algorithms well. During design and development, if the features and strengths of both hardware and software can be considered and made the best use of, requirements can be met and the application goal achieved with a high-performance, low-cost target ES. Thus, a high overall performance of the target ES can be guaranteed.
Since an ES has specific applications, its system structure and components can be customised accordingly. Furthermore, the design and development of an ES should be
Chapter 4 FPGA-based Embedded Hardware System for Graphics Applications 63
based on the application requirements. Figure 4.4 shows the development flow of combined hardware and software for application-specific ESs.
Figure 4.4 Development Flow of Combined Hardware and Software for Application-specific ESs The FPGA-based ES design flow is as follows.
4.5.1 Application Proposal
The development of an ES starts with applications being specified – i.e. the application proposal, the first step in Figure 4.4. In this step, the applications of the target ES should be defined. Then the flow moves to the second step.
4.5.2 Requirement Analysis of ES
Requirement analysis of the target ES has to be performed. That is the second step of Figure 4.4. The requirements of the target ES are separated according to their hardware and software tendency. The requirement analysis result should provide clear instructions about how to implement the target system in terms of hardware and software. It helps to decide which part of the application should be constructed with hardware and which part of with software. Then the flow moves to the third step.
1. Application Proposal
2. Requirement Analysis of ES
3. Separation of Hardware and Software
4. Initial Hardware System Design
5. Generation of HAL and Device Drivers
6. Operating System and Libraries Integration
7. Application Software Development (Addition and Modification)
8. Hardware Addition and Modification
Application capabilities and system specifications are met?
9. Application-Specific ES Implementation Hardware is needed to modify? No No Yes Yes
Chapter 4 FPGA-based Embedded Hardware System for Graphics Applications 64
4.5.3 Separation of Hardware and Software
With a clear requirement analysis result, a boundary between the hardware and software for the target ES can be defined. This is the third step in Figure 4.4, separation of hardware and software. The separation results in construction of hardware and software parts. These parts can be constructed in parallel or in sequence, depending on the dependent relationship between them. If a dependent relationship exists, the software parts must be programmed after the hardware system (that is constructed in the fourth and fifth steps), for example, the software parts that have to communicate with the hardware. Then the flow moves to the fourth step.
4.5.4 Initial Hardware System Design
With the requirement analysis result and after the separation of hardware and software, the initial design of the hardware system can be done. With the building blocks for hardware, as shown in Figure 3.2, the hardware system can be constructed in the design environment, such as the Altera ESDK, and stored in files. After compilation, synthesis and verification, a configuration file can be generated and downloaded to the FPGA device. This is the fourth step in Figure 4.4. Then the flow moves to the fifth step.
4.5.5 Generation of HAL and Device Drivers
Depending on the components adopted in the hardware system, such as processor and peripherals, the HAL and device drivers can be generated, which is the fifth step in Figure 4.4. This is also the second layer in Figure 3.3. Most of the software in this layer is generated by the design environment, for example Altera ESDK. If a new component is used in hardware design but is not available in the SOPC libraries, the device drivers and the relevant API of this new component must be programmed and added to the HAL. Then the flow moves to the sixth step.
4.5.6 Operating System and Libraries Integration
Along with the HAL, a real-time operating system and necessary libraries (including the ANSI C standard library and application-specified library) can be added to the development. This is the sixth step in Figure 4.4 and the third layer in Figure 3.3. Then the flow moves to the seventh step.
4.5.7 Application Software Development
The application software can be programmed and downloaded to the target board to run and debug, which is the seventh step. Then the first design must be verified whether or not it meets the needs of application capabilities or system specifications. If it does, the design
Chapter 4 FPGA-based Embedded Hardware System for Graphics Applications 65
of application-specific ES is accomplished, and the process moves on to the ninth step. If it does not, the design must be modified. Before the modification is done, it has to be determined whether or not the hardware system has to be modified or a new hardware module is required. If not, the modification should be done only on the software and the application software can be added or modified to enhance its performance, which means going back to the seventh step. If yes, the modification on hardware must be done, which is the eighth step Figure 4.4. The flow moves to the eighth step.
4.5.8 Hardware Addition and Modification
The hardware system has to be changed or some new modules have to be added to the hardware system. This results in the second hardware design. The second hardware design is carried out. The second configuration file is generated and downloaded to the FPGA device. The second iteration of development passes through the fifth step to the seventh step. The ES development can take several iterations until the design meets the application requirements and system specifications. Then the flow moves to the ninth step.
4.5.9 Application-Specific ES Implementation
The application-specific ES design meets all the application requirements and system specifications and the goal is accomplished.