FPGA Programming: Mechanism for Setting Transistors

  • Thread starter Thread starter antonantal
  • Start date Start date
  • Tags Tags
    Fpga Programming
Click For Summary

Discussion Overview

The discussion revolves around the mechanisms used for programming Field Programmable Gate Arrays (FPGAs), particularly in comparison to EPROMs. Participants explore the transistor-level operations involved in setting and resetting transistors within FPGAs, as well as the general architecture and functionality of these devices.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification

Main Points Raised

  • One participant inquires about the programming mechanism of FPGAs and compares it to EPROMs, suggesting a specific method involving control gates and threshold voltage manipulation.
  • Another participant explains that most FPGAs are volatile and rely on external serial JTAG memory devices for configuration after a reset.
  • A participant expresses a desire for a detailed transistor-level description of FPGA operation, indicating a gap in available information.
  • One participant provides a brief overview of FPGA architecture, mentioning programmable logic blocks, Look-Up Tables (LUTs), and the role of RAM arrays in programming.
  • Another participant notes that fast FPGAs typically use SRAM-based lookup tables, emphasizing that they lose their contents when power is lost.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the specific mechanisms of programming FPGAs, as there are varying explanations and levels of detail provided. The discussion includes multiple perspectives on the architecture and functionality of FPGAs.

Contextual Notes

Some participants mention the need for more detailed resources and literature on FPGA programming and architecture, indicating potential limitations in the current understanding and available information.

antonantal
Messages
242
Reaction score
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
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.
 
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:
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
 
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
 
Thanks. If the bits are set like in a SRAM than I got the picture.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 16 ·
Replies
16
Views
5K
  • · Replies 18 ·
Replies
18
Views
9K
Replies
17
Views
11K
  • · Replies 4 ·
Replies
4
Views
4K
Replies
3
Views
2K
Replies
2
Views
5K
  • · Replies 3 ·
Replies
3
Views
2K