FPGA Basics - Study Notes Author: ChatGPT (generated study material) License: Free to share for study purposes 1. What is an FPGA? - FPGA = Field-Programmable Gate Array. - A reconfigurable chip that consists of many basic logic blocks and programmable routing. - Developers configure FPGAs using a hardware description language (HDL) such as Verilog or VHDL. 2. Basic Components - Logic Blocks: Implement combinational and sequential logic (LUTs + flip-flops). - Interconnect/Routing: Programmable wires that connect logic blocks. - I/O Blocks: Interface between the FPGA and outside world. - Clock Network: Distributes clock signals with low skew. 3. Typical Design Flow 1) Write RTL code (Verilog/VHDL). 2) Functional simulation. 3) Synthesis (RTL -> netlist of basic gates). 4) Technology mapping (map to LUTs). 5) Placement (decide where each LUT and register goes on the FPGA). 6) Routing (connect all placed blocks with programmable wires). 7) Timing analysis and optimization. 8) Bitstream generation and configuration of FPGA. 4. Advantages of FPGAs - High parallelism: Many operations can happen simultaneously. - Reconfigurability: Hardware behavior can be changed after fabrication. - Shorter time-to-market than custom ASICs. - Good for prototyping and acceleration tasks. 5. Disadvantages of FPGAs - Higher power consumption than ASICs for the same task. - Lower maximum frequency and area efficiency compared to ASICs. - Device cost can be high for large FPGAs. 6. Common Application Areas - Digital signal processing (DSP) - Software-defined radio (SDR) - High-frequency trading and financial acceleration - AI/ML hardware acceleration - Prototyping ASIC designs 7. Basic Terms - LUT (Look-Up Table): Small memory used to implement arbitrary combinational logic. - FF (Flip-Flop): Basic storage element for sequential logic. - CLB (Configurable Logic Block): A cluster of LUTs + FFs. - Timing Slack: The margin between required time and arrival time of a signal. - Clock Domain: A group of registers driven by the same clock. These notes are meant as a concise introduction to FPGA basics for students and self-learners.