nice to meet you. This is Ume Onigiri, which has been full of things I don't understand since I joined the company.
This time, I wrote about when I first learned about FPGA.
When I first joined the company: "Um, what is an FPGA?"
Senior: "It's a device that can rewrite logic circuits and their connections by programming."
When I first heard that circuits and connections could be rewritten by programming, I had the following image.
Wiring moves and connects the arranged logic elements.
But that's not possible.
How is it possible to rewrite?
In order to solve such a question, I investigated the principle that FPGA can be rewritten.
The rewritable part of FPGA is roughly divided into logic elements (LE) and wiring as shown in the figure below.
I will explain the role of these LEs and wiring.
LEs consist of look-up tables (LUTs) and flip-flops (FFs).
The LUT has 4 inputs and 1 output, and can be expressed as a truth table as shown below.
LUT table information is stored in SRAM. Therefore, by rewriting the SRAM table information, it becomes possible to use it as various logics.
The figure below is an example when the logic of a 4-input 1-output AND circuit is written in the LUT.
Multiple wires are connected vertically and horizontally between LEs. The intersection of these wires is the point.
This part consists of a switch called a pass transistor, and can transmit signals in any direction, up, down, left, or right.
Therefore, it is possible to freely connect between LEs.
It turns out that the LEs and wires mesh well together to create a rewritable device.
It's a little embarrassing to think that once you understand the rewritable principle, the wiring will work.