Introduction
It is nice to meet you. My name is Nami Nami, and I studied food at university.
I have never learned anything about electronic circuits, so there are a lot of things I don't understand since I joined this company.
I am facing circuits with my head in my hands every day.
I hope to write articles that are easy to understand for people like me who are new to electronic circuits.
By the way, I am now in charge of FPGAs at Altera.
Do you know what kind of device FPGA is?
When I first joined Macnica, I read an article explaining FPGA on this blush blog, but it was still difficult to understand with my prior knowledge at the time.
So this time, I would like to briefly explain what an FPGA is so that those who have no prior knowledge of FPGAs can understand it. In other words, it’s for complete beginners.
What is FPGA?
FPGA stands for Field Programmable Gate Array, which directly translates to "a large array of logic circuits that can be rewritten in the field.
Simply put, an FPGA is a device that can immediately correct a mistake in logic circuit design using hardware language on the spot (Figure 1).
Incidentally, the ability to do so "immediately on the spot" is a characteristic of FPGAs.
Figure 1: FPGA Circuit Design Correction
Here, there are already two terms that I did not understand a few months ago.
They are
1. hardware language
2. logic circuit
These two are
What is hardware language?
FPGAs do not work just by turning on the power.
It cannot work unless the user writes what kind of circuit is to be created.
This is where the hardware language comes in.
Hardware languages are generally used to describe semiconductor circuits.
Users use this language to design logic circuits and rewrite FPGAs.
The following code is an example of a hardware language called Verilog HDL.
module sample (a, b, c, sela, selb, q);
input a, b, c;
input sela, selb;
output reg q;
always @(sela or selb or a or b or c)
begin
if (sela)
q = a;
else if (selb)
q = b;
else
q = c;
end
endmodule
What is a logic circuit?
A logic circuit is a circuit that handles digital signals.
The following circuit expresses the above language in terms of logic operations, etc. (Figure 2).
Figure 2: Logic circuit (selector circuit)
In this circuit, q is an output and the others are inputs.
The input signal circulates in this circuit and is finally output from q. This output varies depending on the input pattern.
This output varies depending on the input pattern.
For example, in this case, when sela is 1, q outputs a. (I won't go into the details here.)
The FPGA has many logic circuits like this.
Image of FPGA operation
Have you got an image of hardware language and logic circuits?
FPGA is a device that can rewrite logic circuits by hardware language.
So, what happens when you rewrite logic circuits?
It means that the digital signal transmitted within the circuit changes, and the FPGA outputs a signal according to that digital signal.
In other words, the behavior of the device receiving the signal changes.
As an example, let's look at the working image of designing a circuit to make an LED blink every second (Figure 3).
Figure 3: Working Image of Design
If a mistake is made in the design here, the user can immediately correct it. For example, if you write a circuit to turn on an LED every 2 seconds, you can switch the LED to turn on every 2 seconds on the fly.
This is great flexibility.
By the way, "logic synthesis" and "place and route" mean converting circuits described in hardware language into data to be written in FPGA.
FPGAs have been introduced into various devices that support our daily lives by taking advantage of such flexibility.
Thanks for FPGAs.
In Conclusion
I have written a brief article about FPGAs.
I will continue to write articles from a beginner's point of view. If you are a beginner in electronic circuits, check it out!
I look forward to working with you over the next year!
New Engineer's Blush Blog Article List