Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 59326 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline shoggoth

  • Full Member
  • ***
  • Join Date: Dec 2004
  • Posts: 223
    • Show only replies by shoggoth
Re: FPGA for dummies
« Reply #59 on: December 06, 2011, 07:16:23 PM »
Quote from: billt;670532
Please discuss this detail in reference to antifuse based FPGAs.


I just mentioned SRAM-based devices because one of the posters used this to support his/her claim about FPGAs being an emulation of "real" hardware, due to their volatile nature. There are of course other non-volatile technologies as well. Apart from this I don't know what kind of answer you're fishing for here :)
 

Offline Fats

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 672
    • Show only replies by Fats
Re: FPGA for dummies
« Reply #60 on: December 06, 2011, 07:24:50 PM »
Quote from: Thorham;670520
And there we have it: Lookup tables. This means there's no physical chip, which means it's an emulation (imitation). Or perhaps it's about the meaning of the word 'emulation' being interpreted in different ways.


Now some more philosophical questions.

By your definition most of the routing on the internet is done through emulation; or does one think Xilinx makes >$1k FPGAs for the hobbyists around here ?
Given that most of these designs will never be put in an ASIC what are they then actually emulating ?

Most of PCB designs are often done first with some parts done in programmable hardware and then later when it is really succesful a cost reduced version is made with the programmable part replaced with an ASIC. This means that an ASIC is emulation.

I am looking forward to the discussion ... ;)

greets,
Staf.

PS: I think there is an all explaining theory which doesn't conflict with anybody's view here. Try to find it !
Trust me...                                              I know what I\'m doing
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #61 on: December 06, 2011, 07:29:25 PM »
Quote from: shoggoth;670535
I just mentioned SRAM-based devices because one of the posters used this to support his/her claim about FPGAs being an emulation of "real" hardware, due to their volatile nature. There are of course other non-volatile technologies as well. Apart from this I don't know what kind of answer you're fishing for here :)

I may have clicked reply to your message containing the original comment, rather than going in search of the original comment post to click reply to that. Mine was in response to those using SRAM as the basis of their emulation definition. If you're not that guy, sorry I got the reply wrong. Actually, i may have copy/pasted the wrong thing even. I swear I was pasting something that was more overtly SRAM == emulation than my post you refer to. Sorry, don't know how I did that.

To whoever does make the SRAM == emulation claim,
Does the lack of an SRAM in an antifuse FPGA make it less of an emulation than an SRAM FPGA, when everything other than the storage medium is pretty much the same thing?

(A blank antifuse FPGA has the potential to be just about anything. But once programmed, it really is fixed. If you want to change it, you throw that chip in the trash and buy a new blank to put the changed design into. Kindof like how some of us were changing chips on our PicassoIV graphics cards way back when)
« Last Edit: December 06, 2011, 08:24:38 PM by billt »
Bill T
All Glory to the Hypnotoad!
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #62 on: December 06, 2011, 08:33:55 PM »
Quote from: ShapeShifter;670525
So for something to be 'real' and not emulated, it must be hardwired in a permanent form onto a silicon chip? If that's the criteria we're to use, then what does that make the original Amiga 1000? After all, the ROM for the A1000 had to be soft-loaded from floppy disk - it didn't exist in a permanent chip form!
No, not in this case, because it doesn't matter in what kind of memory a program is stored, as long as the CPU can fetch the instructions from it.
Quote from: billt;670529
Does it make a difference that, for the duration of being powered on and after writing the bitstream into the FPGA configuration memories, that the wiring and everything IS fixed until you power it off?
Yes, it matters, because it can still be changed in a highly flexible manner each time you turn it on. It's all about the changeability.
Quote from: billt;670534
Crack open my FPGA chip and put the die under a microscope. I'll point to the lookup tables. I'll point to the die. I challenge you to prove that neither is where I'm pointing to. An empty package wouldn't make a very good component for your [insert final product PCB here]...
Sure, but you can't point to any wiring, because it doesn't exist (except for the parts that make the FPGA work as an FPGA).
Quote from: billt;670534
I think you're right there. It seems my definition of "implementation" and your definition of "emulation" are stepping on each other.
That sounds about right.
Quote from: Fats;670536
By your definition most of the routing on the internet is done through emulation; or does one think Xilinx makes >$1k FPGAs for the hobbyists around here ?
Why not? Does it matter? Only the problem of sending information around has to be solved, and as long as it's done in a convenient way that's also efficient, then it just doesn't matter.
Quote from: Fats;670536
Given that most of these designs will never be put in an ASIC what are they then actually emulating ?
Devices that don't exist completely physically.
Quote from: Fats;670536
Most of PCB designs are often done first with some parts done in programmable hardware and then later when it is really succesful a cost reduced version is made with the programmable part replaced with an ASIC. This means that an ASIC is emulation.
Yes, it does. Until the circuit is physically built using wires, like in CPUs, it can be said to be an imitation of that actual circuit.

From what I've read in th thread, I've also noticed how the gate building blocks in an FPGA use more transistors than you'd actually need in a full, non-Asic, hard implementation, or am I wrong here? If I'm not, then that would mean that if you actually implemented a circuit the hard way, you'd end up using fewer transistors than then the FPGA equivalent. Sounds like an imitation to me.
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #63 on: December 06, 2011, 09:22:28 PM »
Quote
Sure, but you can't point to any wiring, because it doesn't exist (except for the parts that make the FPGA work as an FPGA).


Sure I can. There's a LOT of wires in there which are not part of the FPGA configuration controls. They exist only to get a signal from an output over here to an input over there. When not configured, they are floating, not connected to anything. The FPGA place and rout tool knows exactly which bits of metal are conducting each and every signal in YOUR design. The PnR tool looks at teh gates netlist for your design, and decides which bits of metal real life to connect to each other to carry YOUR signals around. There are tools for humans to see these connections and stuff too, but they tend to live only inside FPGA companies for fear that a competitor will reverse engineer their FPGA silicon design with such knowledge. If I had that tool, then we could sit down with a microscope and point to each and every bit of metal on the die that carries each and ever signal you design into it. Very real wires, very real metal atoms, very real electrons moving around in them. There aren't any ghosts lurking around in these things... Do you think that the LUTS talk to each other by telepathy or something? They need wires, very very real-life wires.
Bill T
All Glory to the Hypnotoad!
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #64 on: December 06, 2011, 09:26:01 PM »
Quote
Yes, it does. Until the circuit is physically built using wires, like in CPUs, it can be said to be an imitation of that actual circuit.

How do you feel about breadboards, a pile of 74* logic chips, and a bag of wire?
Bill T
All Glory to the Hypnotoad!
 

Offline trekiej

Re: FPGA for dummies
« Reply #65 on: December 06, 2011, 09:29:24 PM »
Is it not possible that this it is in the middle? Is it between Emulation and Implementation?
emulation -> fpga -> asic(implementation)
Amiga 2000 Forever :)
Welcome to the Planar System.
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #66 on: December 06, 2011, 09:32:33 PM »
Quote from: billt;670551
Sure I can. There's a LOT of wires in there which are not part of the FPGA configuration controls.
Yes, but these wires are electronically connected and not directly, that's really what I meant, my bad.
Quote from: billt;670551
When not configured, they are floating, not connected to anything.
Exactly. In a fixed circuit the wires go directly from one component to the next.
Quote from: billt;670551
There aren't any ghosts lurking around in these things... Do you think that the LUTS talk to each other by telepathy or something? They need wires, very very real-life wires.
Ha ha, of course there's no magic involved (if only :)), but the connections still aren't hard, like in a CPU.
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #67 on: December 06, 2011, 09:38:45 PM »
Quote
From what I've read in th thread, I've also noticed how the gate building blocks in an FPGA use more transistors than you'd actually need in a full, non-Asic, hard implementation, or am I wrong here? If I'm not, then that would mean that if you actually implemented a circuit the hard way, you'd end up using fewer transistors than then the FPGA equivalent.

There is a lot of overhead to make an FPGA be so versatile, yes. You might be able to fit 100 ASIC AND gates in the same space as one FPGA logic element takes. The LUT can do more complicated stuff than an AND gate though, and can serve as a handful of different combinatorial gates together, but ASIC would still be smaller.

I guess part of the debate here is "what does al that stuff actually do" in the FPGA when the design is running, and does or does not that define emulation. You and a couple others see the result as soemthing "pretending to be" X, while I and a coupel others see something "being X, but not pretending".
Bill T
All Glory to the Hypnotoad!
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #68 on: December 06, 2011, 09:39:48 PM »
Quote from: billt;670552
How do you feel about breadboards, a pile of 74* logic chips, and a bag of wire?
Not the same. A bag of wires isn't the same as a lookup table, but enables you to build the actual circuit completely physically.

In essence, the lookup tables could be said to tell the FPGA the connection points for the wires (so to speak). The FPGA then electronically connects the wires to those points (so to speak). With a breadboard the connection is completely mechanical, and that makes the big difference.
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #69 on: December 06, 2011, 09:49:35 PM »
Quote
Yes, but these wires are electronically connected and not directly, that's really what I meant, my bad.

Quote
Quote:
Originally Posted by billt View Post
When not configured, they are floating, not connected to anything.
Exactly. In a fixed circuit the wires go directly from one component to the next.

OK, how about this. All those wires do actually connect multiplexers and/or passgates together. wire to transistor to wire to transistor and so on.  The place and route tool chooses which metal wires to use for which signals in your design, and tells the passgates and multiplexers to make that path connection between the chosen bits of metal.

Now, consider the memory controller in an 8640 PPC processor, which is "fixed" enough for you, and I imagine that the memory chips are too. There are two memory channels. There are several banks (DIMM slots) per channel. When the processor wants to access a particular memory location, there are multiplexers to choose which channel it talks to, and passgates in the RAM chips to make sure only the correct one talks back on the bus. Passgates and multiplexers...

And, on a motherboard, you may have several PCI-Express slots. These are not connected to each other, they are a separate channel each. The Northbridge chip looks at the address the processor wants to read from, and demultiplexes the access down the corret channel to its peripheral destination. The response comes back, and the Northbridge now multiplexes this response onto the north bus to the CPU. Again, multiplexors, not some unshared, only this and nothing else goes there pathway segment. If I change which slots my different PCI-Express cards are plugged into, I have at he next powerup reconfigured my system design, the processor and northbridge need to use a different path to send the same request and get the same response. Is my PC emulating the idea of being a PC? Or is it simply just being a PC?
Bill T
All Glory to the Hypnotoad!
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #70 on: December 06, 2011, 09:53:19 PM »
Quote from: billt;670555
I guess part of the debate here is "what does al that stuff actually do" in the FPGA when the design is running, and does or does not that define emulation.
Exactly. In an emulation there's all kinds of things happening in the background to just to enable to make what is being emulated work. The real thing doesn't require any of this overhead at all.

It's like a software emulation: An emulated computer needs a computer and software, while the actual computer works fine by itself.
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #71 on: December 06, 2011, 09:55:02 PM »
Quote
In essence, the lookup tables could be said to tell the FPGA the connection points for the wires (so to speak). The FPGA then electronically connects the wires to those points (so to speak). With a breadboard the connection is completely mechanical, and that makes the big difference.

The LUT does not do that. The Configuration memories tell the muxes which connections to make. The LUT stores/implements your logic truth table , and has no knowledge of or influence on the wire connections or control of anything.
Bill T
All Glory to the Hypnotoad!
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #72 on: December 06, 2011, 10:04:29 PM »
Quote from: Thorham;670558
Exactly. In an emulation there's all kinds of things happening in the background to just to enable to make what is being emulated work. The real thing doesn't require any of this overhead at all.

It's like a software emulation: An emulated computer needs a computer and software, while the actual computer works fine by itself.

Hmmm. What do you think is "happening" in the background of an FPGA design? Once it's configured, all that is fixed. Configuration 1's stay 1's, and configuration 0's stay 0's. The configuration memories to not change. There is no controller going down the address bus doing read or write accesses, not changing any values. The multiplexer settings which control the signal routing are fixed, they do not change and move wire connections around while the system is on. There's overhead stuff "present" and taking up space, but it's not "doing anything", or "nothing is happening there". It's "just there" at that point.

In an ASIC, does it make a difference if I use a library cell carrying the name D flipflop which serves the function of a D flipflop, or if I do an ECO design change, have no empty spaces to put another "real" D flipflop library cell that I somehow forgot, and have to combine a handful of NAND gates that I do have room for here and there, in order to effect a D flipflop function instead? Or, oh crap, that NAND gate should have been an AND gate. The AND (6 transistors) is too big to directly replace the NAND gate (4 transistors), but I have room over there for an inverter. Do a NAND plus an inverter emulate an AND gate, or implement it in an ASIC?

Quote
It's like a software emulation: An emulated computer needs a computer and software, while the actual computer works fine by itself.

An emulated computer needs software. Some group of instructions that are continuously fetched from one of several types/levels of storage somewhere, decoded, ALUed, reading values from parameters and writing values to register or memory destinations, in order to effect the target opcode format, ALU, instruction decode, registers, memory map, etc. In what way do you think this activity is continuously occurring in the FPGA underneath your logic circuit?


And another thought about "fixing" an FPGA. We'd once looked into but never sold a metal mask fixation option for our FPGAs, which would replace the configuration SRAMS and the LUT memory with metal hardwired 1's and 0's, should a security concerned customer want to do that to get a fixed die design instead of going through the effort of ASIC conversion. If I had a Minimig core designed to work well in my FPGA, and I did this metal mask replecement, most of the die is the same as the reprogammable FPGA, all those multiplexors are still there exactly the same way, but I can no longer change their controls, have I de-emulaterified this metal hardwired thing?
« Last Edit: December 06, 2011, 10:17:12 PM by billt »
Bill T
All Glory to the Hypnotoad!
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #73 on: December 06, 2011, 10:06:15 PM »
Quote from: billt;670559
The LUT does not do that. The Configuration memories tell the muxes which connections to make. The LUT stores/implements your logic truth table , and has no knowledge of or influence on the wire connections or control of anything.
Sorry for being an obvious layman here. It should still be true that you store data in the FPGA that configures the wiring, though?

The point is that you don't have, say, two transistors which are directly, mechanically connected (such as using a printed circuit board that's custom made, which the components are soldered onto). In an FPGA you have configurable components in between the wires (or am I missing something again?).
 

Offline shoggoth

  • Full Member
  • ***
  • Join Date: Dec 2004
  • Posts: 223
    • Show only replies by shoggoth
Re: FPGA for dummies
« Reply #74 from previous page: December 06, 2011, 10:34:21 PM »
Quote from: Thorham;670562
The point is that you don't have, say, two transistors which are directly, mechanically connected (such as using a printed circuit board that's custom made, which the components are soldered onto). In an FPGA you have configurable components in between the wires (or am I missing something again?).


Thorham, what about CPLDs and ASICs. Are those also considered emulations of the real thing? I mean, in a CPLD, you don't have, say, two transistors which are directly, mechanically connected (such as using a printed circuit board that's custom made, which the components are soldered onto).