When designing an embedded system, what aspects of the FPGA need to be considered?

Last Update Time: 2019-08-31 10:33:05

A very important consideration is what is required by the system you are planning to design. If you are designing multiple different types of systems, a common hardware design tool might be the best fit. There are many people who spend a lot of time becoming experts in using these tools, and you can join them. If you want to narrow down the scope, there are tools to deal with those "regular" issues, and let you focus on where you can add value. For example, there are a number of tools that can help you quickly develop a signal processing system and configure it into an FPGA. There are also some optimized tools designed to add measurement and control.


Also need to consider the problem of how the system configuration wants to be set. What size do you have? Is it connected to a PC? Some FPGA development tools require you to develop all the hardware around the FPGA, while others require a special board with an FPGA built in. For the latter, many of the work on the board with other resources such as I/O and bus connections is done, which can greatly speed up the development process, because you do not need to pay attention to things such as noise immunity, settling time and crosstalk. For such systems, you should make sure that the connection to I/O has only a few simple features. If your system requires a lot of connectivity to a PC running Windows or RTOS, you should choose a design tool that is cross-platform. If the API used to develop the PC-side interface is very limited, the design efficiency will be affected to some extent.

 Embedded - FPGAs (Field Programmable Gate Array) with Microcontrollers : AT94S10AL-25BQU


Design 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 size, cost, and performance to 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.