Rookie Engineer's Blush Blog

Introduction

Nice to meet you. I'm Nami, and I studied food at university.
I've never learned anything about electronic circuits, so there's a lot I don't know since I joined the company.
Every day I face the circuit while holding my head.
I would like to write an easy-to-understand article for electronic circuit beginners like me.

By the way, I became the person in charge of Altera's FPGA.
Do you know what kind of device FPGA is?
When I first joined the company, I read this blushing blog's FPGA commentary article, but it was still difficult with the preliminary knowledge I had at the time.

Therefore, this time I would like to explain briefly what an FPGA is so that even those who have no prior knowledge can understand it.
that's right. It's super elementary.

What are FPGAs?

FPGA is an abbreviation of Field Programmable Gate Array, which literally translates to "an array of logic circuits that can be rewritten in the field".
Simply put, it is a device that can be corrected on the spot using a hardware language even if you make a mistake in logic circuit design (Fig. 1).
By the way, the feature of FPGA is that it can be done "immediately and on the spot".

FPGA circuit design modification
Figure 1: FPGA Circuit Design Modification

There are already two terms here that I didn't understand a few months ago.
that is
1. Hardware language
2. Logic circuit

These two.

What is hardware language

FPGA doesn't work just by turning on the power.
It cannot operate unless the user writes what kind of circuit to create.
That's where the hardware language is used.

A hardware language is a language generally used to describe semiconductor circuits.
Using this, the user designs the logic circuit and rewrites the FPGA.

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 circuit below expresses the above language using logical operations, etc. (Fig. 2).

Logic circuit (selector circuit)
Figure 2 : Logic circuit (selector circuit)

In this circuit q is the output and the others are the inputs.
The input signal circulates in this circuit and is finally output from q.
This output fluctuates according to the input pattern.

For example, in this case q will output a when sela is 1 (I won't go into the details...).
It is an image that many such logic circuits are stretched in the FPGA.

Operation image of FPGA

Did you get an image of the hardware language and logic circuit?
FPGA is a device that can rewrite the logic circuit by hardware language.

So what happens when you rewrite the logic circuit?

By changing the digital signal transmitted within the circuit, the FPGA will output a signal that conforms to that digital signal.
In other words, the operation of the device that receives the signal changes.

As an example, let's look at a working image of designing a circuit that blinks an LED every second (Fig. 3).

Figure 3: Image of design work

Even if there is a mistake in the design here, the user can immediately correct it. For example, if you write a circuit that lights an LED every 2 seconds, you can switch the LED to light every 2 seconds on the fly.
That's great flexibility.

By the way, "logic synthesis" and "placement and routing" refer to converting a circuit described in a hardware language into data for writing to FPGA.
FPGAs are introduced into various devices that support our lives by taking advantage of such flexibility.
Thank you FPGA.

at the end

This time, I briefly wrote an article about FPGA.
I will continue to write articles from a beginner's perspective. Check it out if you are new to electronic circuits!
Thank you for your continued support for the next year!

I want to read it together! FPGA-related information

What are logic synthesis and placement and routing? Explanation with images of development tools

I want to know more about logic circuits and hardware languages! Introducing related training!

FPGA development flow: An overview of each step

What are FPGAs? : What is the rewritable principle?

What can you do with FPGA? Here are some examples of custom logic!

Let's practice! Write HDL and challenge LED lighting on the development board!

★ Click here for a list of technical articles related to FPGA/CPLD