The ability of FPGAs (field-programmable gate arrays) to be reprogrammed to achieve the desired application or functionality after manufacturing makes them ideal for today’s constantly evolving applications that impose strict restrictions on power and latency while requiring high compute capabilities. Apurva Peri, senior engineer, product marketing, FPGA Business Unit, Microchip Technology Inc., shares tips for FPGA designers and beginners in an interaction with Ayushee Sharma.
Q. How can one decide whether to choose FPGA or processor for an application?
A. While processors are relatively easy to use and program, these only offer sequential programming and have speed constraints.
FPGAs can be perceived as complex devices but offer high-speed parallel computation environments, which are a growing necessity in all modern-day applications. We can now even combine a processor core with an FPGA to optimise performance and speed for current application designs like edge computing, smart vision, Internet of Things (IoT), etc.
Q. Can you give some tips for FPGA designers to avoid common mistakes?
A. Designers have to understand the FPGA architecture, including the logic element, memory blocks, and I/O capabilities. Consider any special features such as DSP blocks, SERDES blocks, and embedded processors that are required for the application. Consider what the FPGA interfaces with to ensure that the FPGA has proper I/O for the application.
Use a good coding style when writing VHDL or Verilog description of the design. Designing with an HDL language is not the same as writing software. Good coding techniques are necessary in order to get the best possible performance.
Understand timing constraints and how to apply them. This will lead to a better implementation through synthesis and layout and make it easier to identify any timing violations. Also, pay attention to the timing verification step to identify any timing violations before programming the part. Finally, consider any debug features that are available in the FPGA.
Q. What is the architectural difference between FPGA and CPLD?
A. A complex programmable logic device (CPLD) is typically an EEPROM-based programmable logic device with a simple architecture and a small gate count. It is ideal for simple designs that do not demand flexibility and extensive computational ability. It offers the advantage of operating as soon as powered up owing to its EEPROM-based structure, but design modifications on CPLDs can be tedious.
An FPGA is a reconfigurable integrated circuit used to implement complex logic functions supporting multiple system implementations and revisions. It can implement anything as simple as a gate or as complex as a multicore processing system. Most FPGAs in the market are made from volatile RAM, which means that additional memory is required to commence operation after power-on. Microchip’s FPGAs are, however, made from a non-volatile flash-based instant-on technology that enables them to deliver thirty to fifty per cent lower power than competing FPGAs.
Q. What are some of the FPGA design tools for beginners?
A. Most of the content is offered by leading FPGA manufacturers, FPGA distribution houses, and other third parties. Academic platforms like MIT OpenCourseWare, Coursera and Udemy also offer professional design courses around FPGAs. For professional embedded designers without FPGA experience looking to work on FPGAs, we have introduced the Hello FPGA kit. It is a low-cost, compact, versatile hardware that serves as an easy tool to familiarise designers with FPGAs.
Q. Which is the best choice – Flash-based, SRAM-based, or anti-fuse based FPGA?
A. The choice is dependent on the specific needs of the application design and acceptable compromises. Flash-based FPGAs do afford additional benefits of low power, immunity to radiation, and inherent security features making them an ideal choice for a wider range of applications, including those with stringent requirements like in aerospace and defence.
Q. How vulnerable are FPGAs to security threats?
A. Security starts during silicon manufacturing and continues through system deployment and operations. In FPGAs, SRAM-based FPGAs lack the key capabilities required to create a trusted and secure hardware platform for a secure embedded system, making them vulnerable to cloning, copying, and reverse engineering.
Q. In which application areas is FPGA technology going to bloom in the coming years?
A. FPGAs have surfaced as the platform of choice for numerous applications owing to their lower latency, configurability, and power efficiency. Some examples are imaging, artificial intelligence (AI)/machine learning (ML), IoT, industrial automation, automotive, aerospace and defence, wireline access networks, and cellular infrastructure.