Designing an embedded system
The first step in designing a complete system is to determine which part of your algorithm needs to be put into the FPGA and execute it. There are several possibilities.
First, the entire application can be executed on the FPGA. You don't have to interact with the user via keyboard, monitor or mouse. In this case, all the work can be done with software development.
Second, it's also possible to embed the application into the FPGA, but you want to have a Windows user interface running on your PC, which means you need to develop a program that runs under Windows to communicate with the FPGA. It depends on whether your development tools are developed in this way. It can be tricky or simple.
Third, another common situation is that you want to distribute your application between the FPGA and a microprocessor platform such as a single board or an embedded PC running RTOS, in which case you may also need a Windows user. interface.
There are several reasons why you may not be able to embed the entire application into an FPGA. The application size is one of them. The number of logic gates in the FPGA is limited, and the code that is finally put into the FPGA may be very efficient or low due to the programmer and the automatic system that generates the code. In addition, the FPGA is available for users. RAM capacity is also limited, and PC-based platforms generally have relatively large memory and hard disk space. Another issue to consider is that FPGA designs are often unable to perform floating-point operations. There are tools on the market that perform floating-point operations on FPGAs, but they may or may not be compatible with the development tools you are using, if not all The type algorithm runs the entire calculation and can be placed on a PC for execution. PCs can also provide other benefits that are not easily implemented on FPGAs, including file I/O, network operations, printing capabilities, and PC-based measurement and control capabilities such as graphics recognition/processing, GPIB/VXI tool control. And interfaces to industrial buses such as CAN, RS-232 and RS-485.
FPGAs bring advantages in cost, size, and performance for embedded systems. They are especially useful for adding intelligent features to I/O processing. FPGAs can be used to implement timing and synchronization that cannot be achieved by software-based systems running RTOS. You can execute most applications through microprocessors and RTOS platforms such as embedded PCs, but require chip-level solutions for signal decoding and encoding or generating output information; likewise, you can execute most applications on the FPGA, but Need another platform to complete more advanced tasks. There are some challenges with using FPGAs, but there are many tools that can help you solve them. The main considerations are your technical characteristics, what tasks the system needs to accomplish and how the system is set up.