Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 59373 times)

Description:

0 Members and 2 Guests are viewing this topic.

Offline shoggoth

  • Full Member
  • ***
  • Join Date: Dec 2004
  • Posts: 223
    • Show only replies by shoggoth
Re: FPGA for dummies
« Reply #74 on: 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).
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #75 on: December 06, 2011, 10:42:32 PM »
Quote from: billt;670557
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.
Sure, but don't those components connect the wires electronically? In a hard implementation of the same circuit, you'd leave those extra components out.
Quote from: billt;670557
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...
Here those same components aren't extra components that you can leave out, because they are part of the circuit design. If you'd do such a design in an FPGA, you'd end  up using more of said components then are needed by the actual circuit itself.
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #76 on: December 06, 2011, 11:14:15 PM »
Quote from: billt;670561
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.
Don't have a clue, but the fact that there is a background in the first place is what matters. For a circuit in an FPGA to work, extra components are needed, and whether they are as active as a software emulation or not isn't important.
Quote from: billt;670561
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.
Can't say much about ASICs, but if they have overhead components needed for a circuit to work, while those components aren't part of the circuit design, then perhaps an ASIC is an emulation as well.
Quote from: billt;670561
Do a NAND plus an inverter emulate an AND gate, or implement it in an ASIC?
Well, you can do an AND gate using a single relay or two transistors. Using two components made of transistors to make another that can actually be made of fewer transistors seems like imitating the behavior of that made part.
Quote from: billt;670561
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?
In that way? Not at all. Don't ask me how it does work, but it should be obvious that FPGAs and computers do things very differently.
Quote from: billt;670561
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?
No, because there are more parts to replace with metal than just the SRAMS and LUT memory.
Quote from: shoggoth;670565
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).
Don't know about CPLDs, but in general, if you have a programmable device in which you can make a circuit design actually work, then it's an emulation (also because of extra components needed which aren't part of the design).
 

Offline hairy

  • Newbie
  • *
  • Join Date: Nov 2003
  • Posts: 34
    • Show only replies by hairy
Re: FPGA for dummies
« Reply #77 on: December 06, 2011, 11:27:02 PM »
Quote from: Thorham;670576

Well, you can do an AND gate using a single relay or two transistors. Using two components made of transistors to make another that can actually be made of fewer transistors seems like imitating the behavior of that made part.


So the ULA chip in Spectrum was "emulating" all other gates different from the basic type available?!? :rolleyes:
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1150
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #78 on: December 07, 2011, 12:17:35 AM »
Quote from: hairy;670578
So the ULA chip in Spectrum was "emulating" all other gates different from the basic type available?!? :rolleyes:
Ha ha, you're right, that's taking it a little far. It's just some purist style thinking, perhaps.
 

Offline Fats

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 672
    • Show only replies by Fats
Re: FPGA for dummies
« Reply #79 on: December 07, 2011, 12:31:57 AM »
Quote from: Thorham;670545

Quote

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.


I have to admit you have some weird definition of emulation. And I can only agree with your definition if you also consider MS Word running in Windows a simulation of a (virtual) fully mechanical machine doing the same thing.
I think this is the base of the misunderstanding. You claim that soft-wired circuits == emulation, hard-wired circuits == no emulation.
So then you also have to claim software == simulation, hardware == no simulation.
I, and probably most people, would claim that hard-wired circuits can still be emulation of another device, e.g, the C64 in a joystick of Jeri Ellsworth, and soft-wired circuits can be unique designs not emulating anything. Hardwired/programmable devices are just two terms orthogonal to emulation/no emulation.

greets,
Staf.
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 #80 on: December 07, 2011, 01:58:36 AM »
Quote from: Thorham;670562
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?).


The LUT is a connection point to a route. It has an output that goes to some other LUT's input. (Or to an IO pin outside the chip) The LUT input is a connection point routed to some other LUT's output, or coming into a chip IO pin. Every wire has a contact (same purpose as a via, but specific name for a connection between metal and poly (transistor gate) or metal and active (transistor source or drain) or likely several contacts to various transistors at each end.

Every wire touches a transistor at each end. At least two on each end (a PFET and an NFET, maybe more than one of each). Every wire has to connect to SOMETHING, or there's no reason for it to be there. (Not completely true, but I won't go into the reasons for planarization fill metal, it has nothing to do with routing or functionality of any kind of chip, it's a manufacturing reliability thing)

The passgates and multiplexers may come from the sale cell library that an ASIC uses. When I started doing this for FPGAs as my daily job 13 years ago (will be in a few weeks), we had a full custom library especially for the FPGAs, in order to pack everything as small and tight together as possible. The last few FPGA chips we designed we moved to using the standard ASIC library, instead of anything custom. We were then using ASIC passgates and ASIC muxes at the ends of our routing wires. The FPGA itself, for all intents and purposes, was an ASIC chip.
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 #81 on: December 07, 2011, 02:02:26 AM »
Quote from: Thorham;670576
Don't have a clue, ...

Don't ask me how it does work, ...

Don't know about CPLDs,

...

Sorry for being an obvious layman here....



Thanks for trying to correct those of who do the topic of this thread every day for over a decade. :)
Bill T
All Glory to the Hypnotoad!
 

Offline shoggoth

  • Full Member
  • ***
  • Join Date: Dec 2004
  • Posts: 223
    • Show only replies by shoggoth
Re: FPGA for dummies
« Reply #82 on: December 07, 2011, 02:28:09 AM »
Quote from: Thorham;670576
Don't know about CPLDs, but in general, if you have a programmable device in which you can make a circuit design actually work, then it's an emulation (also because of extra components needed which aren't part of the design).


So... by definition it's emulating... what exactly? A (fairly large) bunch of 74-circuits? Transistors? I have a different theory: it implements a logic function. That logic function could be implemented in other ways as well. The technology used to implement that logic function has no impact on functionality whatsoever as long as the technology is able to sustain timing requirements etc.
 

Offline amigadave

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: Jul 2004
  • Posts: 3836
    • Show only replies by amigadave
    • http://www.EfficientByDesign.org
Re: FPGA for dummies
« Reply #83 on: December 07, 2011, 03:11:42 AM »
Quote from: billt;670598
Thanks for trying to correct those of who do the topic of this thread every day for over a decade. :)

There are no shortage of members here that like to post messages on how things work, when they have almost zero experience or knowledge on the topic.  I think I have even jumped into a thread or two to offer an opinion when I really should not have.  Something I didn't really know anything about, but just had to post an opinion on.  Just human nature when a thread is really interesting and we want to add our 2 cents.

Unfortunately, some people get so sucked into an argument and trying to express their opinions, they won't stop even after they realize they don't know what they are writing about.  These are the guys I don't understand.  I guess they just like to hear the sound of their own voices.
How are you helping the Amiga community? :)
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #84 on: December 07, 2011, 04:47:30 AM »
Well, it is interesting to see that some people do see this as a gray area for definition, or that the way an FPGA does what it does is something other than a genuine method of "implementation". I've been fixed on how I see this for a long time for very technical reasons. People on the other side I imagine have felt their way for a long time too. Both sides are having trouble grasping way people on the other feel the way they do, for whatever reasons that is. It's interesting to try and see this through someone else's eyes who have a different experience with it all.
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 #85 on: December 07, 2011, 04:58:02 AM »
Quote from: billt;670598
Thanks for trying to correct those of who do the topic of this thread every day for over a decade. :)
Just trying to get the emulation point across. If I made it look as if I was trying to argue over the functioning of an FPGA, then that wasn't my intention at all.
Quote from: Fats;670588
I have to admit you have some weird definition of emulation. And I can only agree with your definition if you also consider MS Word running in Windows a simulation of a (virtual) fully mechanical machine doing the same thing.

I think this is the base of the misunderstanding. You claim that soft-wired circuits == emulation, hard-wired circuits == no emulation.
So then you also have to claim software == simulation, hardware == no simulation.
I hadn't thought of that, but it sounds good to me. A program is just a fully functioning model of a data processing system, where the physical implementation is undefined.
Quote from: Fats;670588
I, and probably most people, would claim that hard-wired circuits can still be emulation of another device, e.g, the C64 in a joystick of Jeri Ellsworth
If it's not the original chipset, then yes.

Quote from: amigadave;670601
There are no shortage of members here that like to post messages on how things work, when they have almost zero experience or knowledge on the topic.
And what does any of this have to do with what emulation is? Because that's what it boils down to.

You can ask this question about hardware (where my layman level doesn't help), and as someone has shown, you can ask it about software, as well.

It's not about the details of how an FPGA or whatever programmable chip works, it's about the fact that it's programmable, anything else just gets in the way.
 

Offline psxphill

Re: FPGA for dummies
« Reply #86 on: December 07, 2011, 08:40:30 AM »
Quote from: billt;670503
You don't "have to" use microcode in any microprocessor implementation, be it ASIC or FPGA. (Consider that a custom microprocessor design such as Motorola's original 68000, Intel's Core i7, AMD's FX, etc. are the same class as ASIC, ie very fixed hardwired stuff)

The 68000 uses microcode, therefore to emulate it you would have to use the microcode. If you don't use the microcode you are only simulating it. Just because the microcode is in mask rom is irrelevant.
 

Offline psxphill

Re: FPGA for dummies
« Reply #87 on: December 07, 2011, 08:44:50 AM »
Quote from: billt;670530
Please describe the layer which has been removed. Are there any additional layers below? Please describe any that remain as well as the one removed. I've tried to give as detailed an explanation of my understanding of FPGAs as I can in a lunch hour. Please do the same.

With software emulation you have some form of operating system, general purpose CPU etc that are used to simulate gates. While on the FPGA you have gates. Everything else is the same concept.
 

Offline psxphill

Re: FPGA for dummies
« Reply #88 on: December 07, 2011, 08:52:18 AM »
Quote from: shoggoth;670523
But with claims like "FPGAs are essentially CPUs" just because they can be programmed to perform a function is... awkward. No offense.

I didn't say FPGA's were essentially CPU's, just that they have alot in common. With regards to emulation they perform the same function.
 
Saying that FPGA isn't emulation because an FPGA is parallel or isn't programmed the same as a CPU is just plain stupid.
 
I've worked on a couple of very well known emulators, so I know what I'm talking about. Linking to wikipedia is more so I don't have to rewrite what they already said. kthx
 

Offline alexh

  • Hero Member
  • *****
  • Join Date: Apr 2005
  • Posts: 3644
    • Show only replies by alexh
    • http://thalion.atari.org
Re: FPGA for dummies
« Reply #89 from previous page: December 07, 2011, 10:58:44 AM »
FPGA's are nothing like CPU's. And certainly nothing like software emulation using a CPU.

Software emulation is a re-creation of the hardware in an abstract model. Whereas FPGA's can re-create the logic of the original 1:1 (if the original logic definitions are available).

The similarities between what has been done with FPGA's and what has been done with software emulation stems from in both cases the original logic definitions were NOT available and so had to be reverse engineered and re-created (often with mistakes due to largely undocumented features.)