FPGA Programming: Mechanism for Setting Transistors

In summary: Do they usually come preloaded with programming info or must it be loaded externally?Most FPGAs have some sort of programming memory that stores the configuration data. This could be an EPROM, Flash memory, or even RAM. However, some FPGAs can also be programmed using an external device.
  • #1
antonantal
243
21
What is the mechanism used for programming FPGAs? Is it the same as for EPROMs?
I know (although not sure this is correct either) that in EPROMs, for setting a transistor to "1" a control gate is used which is placed in the oxide layer of the MOS transistor and by applying a voltage between the drain and the control gate you will charge the control gate (for NMOS) with electrons (like the "-" plate of a capacitor) ,and thus increase the threshold voltage of the transistor which therefore will not conduct regardless of the voltage you apply on the gate.
 
Last edited:
Engineering news on Phys.org
  • #2
Most FPGAs are volatile. After a reset, they read in their settings from an external serial JTAG memory device like a serial ROM or Flash. Is that what you are asking? There's probably a lot more info at Xilinx's website that can help.
 
  • #3
No. I'm just curious how are the transistors inside a FPGA set to "1" and then how are they reset. I can't seem to find a detailed (transistor level) description of how FPGAs work.
 
Last edited:
  • #4
There are several books on the subject. One example is "VHDL for Programmable Logic" by Kevin Skahill (Cypress Semiconductor). Note that it is oriented toward VHDL programming of FPGAs, CPLDs, etc; but it also describes the inner workings of FPGAs.

Essentially, an FPGA is a large set of programmable logic blocks on a chip, usually centered around "Look-Up Tables" (LUTs), often followed by multiplexers and latch arrays. By combining these, we can create an almost endless array of logic functions, simply by entering our logic choices into the LUTs and setting up steering paths to and from these blocks. This programming is controlled in the devices (usually) by a series of (semi-Hidden) RAM arrays that make up the look-up tables and others that control steering of the Multiplexers and the routing between the various logic blocks. (Ie., there are a lot more gates on the FPGA than just those that make up the advertised Logic Block components.) As berkeman stated, the JTAG input is used to load the programmed information into the internal control memory of these volatile devices. (Not all FPGAs etc. need be volatile, but this is generally the rule. They could also be programmed with internal EPROM, etc.)

KM
 
  • #5
Most fast FPGAs are nothing more than SRAM-based lookup tables connected through multiplexers and routing resources like buffers. When they lose power, they lose the contents of their SRAM.

- Warren
 
  • #6
Thanks. If the bits are set like in a SRAM than I got the picture.
 

1. What is FPGA programming?

FPGA programming is the process of designing and implementing logic circuits on a Field-Programmable Gate Array (FPGA) device. It involves using a hardware description language (HDL) to describe the desired circuit and then programming the FPGA to implement the circuit on its array of configurable logic blocks (CLBs) and interconnects.

2. How does FPGA programming work?

FPGA programming involves writing code in a hardware description language (HDL) such as Verilog or VHDL. The code describes the desired logic circuit, including the connections between different logic components. The code is then synthesized and translated into a configuration file that is loaded onto the FPGA device. This configuration file tells the FPGA how to configure its CLBs and interconnects to implement the desired circuit.

3. What is the advantage of using FPGAs over traditional processors?

FPGAs offer several advantages over traditional processors, including faster performance, lower power consumption, and the ability to be reconfigured for different tasks. Unlike traditional processors, which have fixed logic and instruction sets, FPGAs can be programmed to implement custom logic circuits, making them highly versatile and efficient for specific applications.

4. How do you set transistors in an FPGA?

FPGAs use a mechanism called a lookup table (LUT) to set transistors. The LUT stores the logic values for each input combination and outputs the correct result. When the FPGA is programmed, the LUTs are configured to implement the desired logic circuit by setting the appropriate transistors to create the necessary connections and gates.

5. What are the applications of FPGA programming?

FPGA programming has a wide range of applications, including digital signal processing, video and image processing, cryptography and security, network and communication systems, and many others. FPGAs are also commonly used in research and development for prototyping new hardware designs and in industries such as aerospace and defense for their high performance and reconfigurability.

Similar threads

  • Electrical Engineering
Replies
3
Views
3K
  • Electrical Engineering
Replies
3
Views
1K
  • Electrical Engineering
Replies
18
Views
7K
  • Electrical Engineering
Replies
4
Views
3K
Replies
17
Views
10K
  • Introductory Physics Homework Help
Replies
4
Views
1K
Replies
4
Views
2K
Replies
2
Views
4K
  • General Engineering
Replies
1
Views
3K
  • Electrical Engineering
Replies
26
Views
16K
Back
Top