Josipovic, LanaGuerrieri, AndreaIenne, Paolo2021-06-192021-06-192021-06-192021-01-0110.1109/MCAS.2021.3071631https://infoscience.epfl.ch/handle/20.500.14299/178930WOS:000655542900006Since their inception more than thirty years ago, field-programmable gate arrays (FPGAs) have been widely used to implement a myriad of applications from different domains. As a result of their low-level hardware reconfigurability, FPGAs have much faster design cycles and lower development costs compared to custom-designed chips. The design of an FPGA architecture involves many different design choices starting from the high-level architectural parameters down to the transistor-level implementation details, with the goal of making a highly programmable device while minimizing the area and performance cost of reconfigurability. As the needs of applications and the capabilities of process technology are constantly evolving, FPGA architecture must also adapt. In this article, we review the evolution of the different key components of modern commercial FPGA architectures and shed the light on their main design principles and implementation challenges.Engineering, Electrical & ElectronicEngineeringcircuits and systemshardwarefield programmable gate arrayshigh-level synthesisSynthesizing General-Purpose Code Into Dynamically Scheduled Circuitstext::journal::journal article::research article