Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 59417 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #179 from previous page: December 12, 2011, 08:31:00 PM »
Quote from: Thorham;671198
OCS, ECS and AGA are simply different revisions of the Amiga custom chipset. FPGA implementations are blatant imitations, nothing more, and it's also doubtful that FPGA implementations show exactly the same behavior as the OCS, ECS and AGA chipsets (same goes for WinUae).


But AGA, like ECS Natami and Minimig, come from something other than the original chipset blueprints. They are all nothing more than imitations of OCS with some new enhancements beyond that, and are not in all ways timing identical to the really original OCS hardwired chips.  They cannot be anything other than ghostly simulations when running OCS software. I just don't see why a new implementation in an ASIC (custom chip, whatever you call it) that somehow differs from the really original thing is different than doing the same in an FPGA. But we may never come to agreement on that philosophy.
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 #180 on: December 12, 2011, 08:39:41 PM »
Quote from: billt;671201
But AGA, like ECS Natami and Minimig, come from something other than the original chipset blueprints.
That simply means AGA is a new version of the Amiga chipset.
Quote from: billt;671201
I just don't see why a new implementation in an ASIC (custom chip, whatever you call it) that somehow differs from the really original thing is different than doing the same in an FPGA.
Wait a minute, are the Amiga custom chips done in ASICs? Aren't ASICs chips that can be programmed once?
Quote from: billt;671201
But we may never come to agreement on that philosophy.
Indeed. As long as it's clear that it's a philosophy and not necessarily set in stone.
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #181 on: December 12, 2011, 08:43:19 PM »
And things get really crazy if you consider a Meta-FPGA. I saw a project somewhere called Meta-FPGA that is an FPGA design, in both contexts of talking about an FPGA. it IS an FPGA, in that it implements a programmable logic architecture. It's Meta, in that it's a core intended to be configured inside of a silicon FPGA. It's an FPGA to exist inside of an FPGA. Though the project I knew of seems to have vanished, it was a student web page that is now a 404 error.:(
Bill T
All Glory to the Hypnotoad!
 

Offline mikej

  • Hero Member
  • *****
  • Join Date: Dec 2005
  • Posts: 822
    • Show only replies by mikej
    • http://www.fpgaarcade.com
Re: FPGA for dummies
« Reply #182 on: December 12, 2011, 08:51:55 PM »
Let me ask a question.

We are now scanning dies of some 1980 ASICs. From this, we can do polygon extraction - then transistor extraction and then reduce to gates.

This netlist can be synthesised back into an FPGA, or a modern ASIC.
They would be functionally identical.

Is one "emulating" the other?

Even a crude VHDL copy of an Amiga ASIC is very likely to be much closer to the function of the original than any software model. Bugs in the design become apparent very quickly.

You have to realise that the chips in the Amiga/Atari are very simple and small by todays standards. By testing the FPGA copy against the original we get nearly 100% functional coverage - the analyser proves the two designs are running in lock step and highlight any difference in them.

Best,
MikeJ
 

Offline psxphill

Re: FPGA for dummies
« Reply #183 on: December 12, 2011, 09:02:37 PM »
Quote from: mikej;671208
Let me ask a question.
 
We are now scanning dies of some 1980 ASICs. From this, we can do polygon extraction - then transistor extraction and then reduce to gates.
 
This netlist can be synthesised back into an FPGA, or a modern ASIC.
They would be functionally identical.
 
Is one "emulating" the other?

Yes. It's the behaviour you are emulating. You didn't (and can't) just do a 1:1 copy of the gates. For example, if you scanned the die of your asic then it wouldn't look anything like the original chip.
 
Alot of the chips you wouldn't even be able to just take functionality and convert it. For a c64 you'd have to add extra logic to take care of the undocumented behaviour, because your new ASIC won't have the same side effects (and the FPGA and ASIC wouldn't behave the same either).
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #184 on: December 12, 2011, 09:05:43 PM »
Quote from: Thorham;671203
That simply means AGA is a new version of the Amiga chipset.
Wait a minute, are the Amiga custom chips done in ASICs? Aren't ASICs chips that can be programmed once?
Indeed. As long as it's clear that it's a philosophy and not necessarily set in stone.

The Commodore custom chips were probably GateArrays. (I think I even saw/heard somewhere that the name for the Gary chip is simply an abbreviation for "GateArray") But this is again symantics, as marketing people at chip companies make up new words for essentially the same thing when an old word becomes to sound as if it must represent old technology to their customers.

An ASIC is a hard-wired chip. Application-Specific Integrated Circuit. The circuit design is turned into a gate level letlist (OR gates, AND gates, inverters, passgates, muxes, etc) and they are placed onto the die and then connected by metal wires and vias. That's a "Custom chip". It's custom manufactured to be exactly what the customer wants, and nothing else.

GateArray was a word to describe one way to complete an ASIC. In GateArray, there are different sizes of die, so smaller customer designs don't waste a horrible amount of die space, and large designs can be put into a large die. The logic area is a "sea of gates", in that a very regular pattern of transistors are laid down, available for use, and wafers are likely already manufactured up to that point. Then the customer design is really just a custom set of metal and via masks to connect things together. Where an OR gate was placed, the transistors on the wafer are connected by metal to complete that OR gate. If that location was an AND gate, then those transistors are connected by metal to complete an AND gate. Any gate locations not used will have transistor silicon p[resent, but tied off to be non-functional, and instead will likely become capacitors on the power bus. (gate to the source/drain area under the gate is essentially a capacitor in all CMOS transistors) It's a metal-programmable method, in that no particular circuit of any kind exists until metal wiring is fabbed to define one.

Then there is Standard Cell, the word that came after GateArray sounded "old". In Standard Cell, things are really only a minor difference to GateArray. Standard Cells have more customization per logic gate layout, and they do not have the very regular structure underneath. but you can lay down rows of logic gates, and include some extra things beyond the actual design, in case an error is found then you might (hopefully) be able to use some of those extras to fix things with a metal-mask only change later. While logic gate placement in Standard Cell doesn't give the super-generic underlayer structure that Gate-Array does, it can still be considered a metal-programmable technique. As far as what we chip designers do to make a Standard Cell ASIC die design, it's exactly the same thing(s) we do to make a GateArray style ASIC.

ASSP, or Application Specific Standard Product, is another term for ASIC, with some particular marketing meaning to it. it, like an ASIC by name, is a custom chip designed for one and only one application. The marketing terminology difference is that a customer may not be abel to afford to have his design made exclusively for himself and no one else. But it's important he gets it. So he can get the ASIC made, but the fab house is able to sell it to other customers in addition to the original customer. The original customer gets a discount this way, and is one way for a smaller company to get a custom chip made when he otherwise cannot afford such a thing.

SoC, System On a Chip, is an ASIC. It'll go through the same design steps and go through the same kind of fabrication as any other ASIC/custom chip using that fab process. The SoC ARM processors in your cell phones are ASICs.

Flash memories are ASICs, at least at my employer. It only adds a few layers to the wafer manufacturing process. SRAM chips are ASICs. FPGAs are even ASICs. The last FPGA silicon designs we did here were using the ASIC group design flow. Even before that, the more custom layout was also an ASIC, in that the specific application the integrated circuit was to be, was an SRAM-based FPGA. Then we added a microcontroller on the same die, and had a programmable System On Chip, and that itself was an ASIC too.

An ASIC does not get "programmed". It gets manufactured. And as soon as the last layer of the wafer is manufactured onto it, it gets cut into individual die, put in a package, and that's your final complete chip. Nothing comes after that except testing, shipping, and PCB assembly.
« Last Edit: December 12, 2011, 09:24:25 PM by billt »
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 #185 on: December 12, 2011, 09:07:58 PM »
Quote from: psxphill;671209
Yes. It's the behaviour you are emulating. You didn't (and can't) just do a 1:1 copy of the gates. For example, if you scanned the die of your asic then it wouldn't look anything like the original chip.
 
Alot of the chips you wouldn't even be able to just take functionality and convert it. For a c64 you'd have to add extra logic to take care of the undocumented behaviour, because your new ASIC won't have the same side effects (and the FPGA and ASIC wouldn't behave the same either).

He just described one method to get the exact gates netlist from the original chip die. Ie, to use the original custom chip as it's own blueprint. So yes, using that is by definition a 1:1 copy of the gates. If you've done a correct job of scanning the original die, then you cannot possibly end up with something different from it. As it is exactly the same logic circuit, then any undocumented registers, values, modes, whatever are indeed there, exactly as the original die implements them. Any logic bugs in the original chip are there exactly the same in your scan.
« Last Edit: December 12, 2011, 09:18: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 #186 on: December 12, 2011, 09:21:26 PM »
Quote from: mikej;671208
Let me ask a question.

We are now scanning dies of some 1980 ASICs. From this, we can do polygon extraction - then transistor extraction and then reduce to gates.

This netlist can be synthesised back into an FPGA, or a modern ASIC.
They would be functionally identical.

Is one "emulating" the other?
Not when implemented using an ASIC (billt just explained ASICs quite clearly). In this case you simply get a hardwired copy. If you made a hardwired implementation of just the behavior of a chip, you'd get a replica, not an emulation.

The reason why I keep hammering on the FPGA=emulation thing, is because of the soft side of FPGAs. All sorts of overhead electronics are needed to actually connect the wires together, and these extra components aren't needed to do a hardwired implementation. It seems to be a simple case of interpretation.
Quote from: billt;671210
An ASIC does not get "programmed". It gets manufactured. And as soon as the last layer of the wafer is manufactured onto it, it gets cut into individual die, put in a package, and that's your final complete chip.
Right, good to have that cleared up, means ASICs can stay out of the whole emulation thing.
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show only replies by freqmax
Re: FPGA for dummies
« Reply #187 on: December 12, 2011, 11:39:23 PM »
Quote from: mikej;671208
We are now scanning dies of some 1980 ASICs. From this, we can do polygon extraction - then transistor extraction and then reduce to gates.


Amiga ASICs ?

Scanning electron microscope or high-resolution camera?
 

Offline psxphill

Re: FPGA for dummies
« Reply #188 on: December 12, 2011, 11:52:55 PM »
Quote from: billt;671211
He just described one method to get the exact gates netlist from the original chip die. Ie, to use the original custom chip as it's own blueprint. So yes, using that is by definition a 1:1 copy of the gates. If you've done a correct job of scanning the original die, then you cannot possibly end up with something different from it. As it is exactly the same logic circuit, then any undocumented registers, values, modes, whatever are indeed there, exactly as the original die implements them. Any logic bugs in the original chip are there exactly the same in your scan.

It's not 1:1 because the cell in the FPGA is nothing like the gates in an ASIC.
 
http://en.wikipedia.org/wiki/Field-programmable_gate_array#Architecture
 
The cells are configured in different ways to produce the logic that you want. In an ASIC you wouldn't build something as complex to make a single and/nand/or/nor gate. Even if the VHDL is based on an ASIC die the result is as far from the original as a C simulation (you could build a C simulation from a die scan as well).
 
undocumented behaviour is not the same because alot of them rely on the analogue behaviour of digital gates and the cells in the FPGA aren't going to behave like that at all.
 
when you build an asic from VHDL you would just put the gates in, but electronically they are still going to be different than the original. So any analogue effects (resistance/capacitance etc of the circuit) may differ just because of different lengths and the gate chemistry.
 
If you take a look at resid then you'll see how difficult it is to simulate a sid chip using digital concepts.
The colour generation in vic is analogue based, because it operates in NTSC/PAL colour space.
 
The c64dtv started as an fpga and turned into an asic & the emulation in vice is so much better. The DTV doesn't even simulate the filters AFAIK.
« Last Edit: December 13, 2011, 12:02:17 AM by psxphill »
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show only replies by HenryCase
Re: FPGA for dummies
« Reply #189 on: December 13, 2011, 12:09:28 AM »
Quote from: Thorham;671212
The reason why I keep hammering on the FPGA=emulation thing, is because of the soft side of FPGAs. All sorts of overhead electronics are needed to actually connect the wires together, and these extra components aren't needed to do a hardwired implementation. It seems to be a simple case of interpretation.


Of course you're right, it is a matter of interpretation, however getting hung up on the need for the wires to be fixed in a non-emulated implementation seems like an odd requirement, IMO.

Let's use a hypothetical situation to explore this. Let's say you wanted to recreate a Z80 CPU using logic gate ICs (7400 series or similar). Let's say two devices were built, one on breadboard, the other on veroboard. Which is the true recreation?  Are they both Z80 recreations? Is the veroboard model the only valid one, as you can more easily alter the wiring in the breadboard model?

My interpretation of emulation is making software designed for one computer system run on an incompatible computer system, meaning there needs to be a host layer and an emulation layer. IMO this doesn't apply to FPGA implementations, as they're not fixed function devices so there's no translating going on between architectures. It's a matter of opinion, but that's how I see it.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show only replies by HenryCase
Re: FPGA for dummies
« Reply #190 on: December 13, 2011, 12:21:18 AM »
Quote from: psxphill;671231
when you build an asic from VHDL you would just put the gates in, but electronically they are still going to be different than the original. So any analogue effects (resistance/capacitance etc of the circuit) may differ just because of different lengths and the gate chemistry.


You can work on the circuit timings too, which ensures you can get complete accuracy. Besides, circuits don't need to be identical to be compatible with each other, e.g. a 68020 and a 68030 aren't completely identical in every way, yet if you put a 68030 accelerator in an A1200 you can still run your A1200 software.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show only replies by freqmax
Re: FPGA for dummies
« Reply #191 on: December 13, 2011, 12:21:29 AM »
I consider emulation when the underlying layer has to use clock cycles to propagate state translations from the guest hardware to the real hardware API.

Regarding the Meta-FPGA, it's an interesting project because it eliminates the vendor-lock-in of synthesation software. In fact one could order a basic FPGA ASIC with plain fabric if enough money could collected to cover startup costs. Every extra chips is as expensive as a postage stamp..

@billt, url of that 404-site?
 

Offline psxphill

Re: FPGA for dummies
« Reply #192 on: December 13, 2011, 12:33:12 AM »
Quote from: freqmax;671236
I consider emulation when the underlying layer has to use clock cycles to propagate state translations from the guest hardware to the real hardware API.

You need to come up with a different word, because emulation has no such requirement.
 

Offline psxphill

Re: FPGA for dummies
« Reply #193 on: December 13, 2011, 12:36:24 AM »
Quote from: HenryCase;671235
68030 aren't completely identical in every way, yet if you put a 68030 accelerator in an A1200 you can still run your A1200 software.

It's not the same, because there are documented differences and it's easy to write software that works without an accelerator and fails when there is one.
 
What I'm referring to is not being able to simulate observed behaviour because the physical makeup of the chip is different.
 

Offline NorthWay

  • Full Member
  • ***
  • Join Date: Jun 2003
  • Posts: 209
    • Show only replies by NorthWay
Re: FPGA for dummies
« Reply #194 on: December 13, 2011, 02:02:22 AM »
This is funny. No, make that amusing.

Jay Miner and crew did old-fashioned logic design, possibly with pencil and paper, at best with some pretty rudimentary electronic tools. Remember how they went out to buy workstations the moment C= bought them up? Digital design required some top notch equipment (like Apollo workstations).

So, Meet Joe Pillow: A heap of chips, wires, and boards.
Now, take a look at AGA. Anyone think that was not designed in VHDL or Verilog? Can't be for a proper Amiga those then.