Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 31690 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show only replies by freqmax
Re: FPGA for dummies
« Reply #29 on: December 06, 2011, 06:44:51 AM »
Most chips digital chips consists of a bunch of transistors wired in a way that makes them used in a way where they are either fully on or off. Wires can't be changed inside a chip. But a bigger bunch of transistors can be wired to give the same function where the function is dependent on transistor states instead of wires. This makes the ground for FPGAs.
The penalty is that transistor configurations that depend on more transistors is slower but will still be fast enough to respond properly. The other penalties are the configuration complexity and heat.

So in essence a few transistors with wiring is replaced with more transistors and wiring but where the function depends on the state of some transistors used as memory instead of hard wired cables.

These FPGA Amigas are essentially a clone just like AMD CPU is a Intel clone. Or an implementation of the original schematic.
Information sources are UAE, and testing of real hardware to get the function.

The devices you need can either be implemented with the FPGA provided there's enough "free" configuration transistors or via USB. The original hardware gets broken by time and there's no replacement for the original chips.
 

Offline Everblue

  • Hero Member
  • *****
  • Join Date: Dec 2004
  • Posts: 584
    • Show only replies by Everblue
Re: FPGA for dummies
« Reply #30 on: December 06, 2011, 07:06:45 AM »
Quote from: freqmax;670429

Information sources are UAE, and testing of real hardware to get the function.


So, if there is an "error" in UAE, it will be reproduced on FPGA?
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #31 on: December 06, 2011, 07:14:15 AM »
Quote from: Thorham;670376
Of course, because that flipflop is a low level entity similar to a machine code instruction. The opcode is simply of a higher level than a flipflop.


You don't know what a flipflop is, do you? Certainly not how a flipflop compares to an opcode. (it doesn't) A flipflop is a bit. A 1 or a 0. It's held at the same value between clock edges, and only at the defined clock edge does it pass the input value to output, and hold it until next clock edge. That's 3 wires (4 if you have the negated output value as well), and maybe 6 transistors. It's a single bit storage unit. An opcode is a code, a particular value made up of 1s and 0s. It's not a storage unit. It's a command. I don't listen to my lunchbox ordering me around, do you? And the words coming out of a drill sergeant's mouth are not very useful for putting your stuff inside of are they?

Quote
Quote
I've done silicon layout of FPGA chips

Which is similar to a CPU program, only on a lower level than machine code.

The principle is the same:

With a CPU you describe your functions using high level instructions which are executed serially, while with an FPGA you describe your functions by telling the FPGA how it's gates have to be wired up, which operate in parallel, because you're describing an electronic component.

No hardwiring=emulation.


Uhm, WHAT?! You're saying that silicon layout is similar to writing a computer program? You're on some pretty wacky weed there dude. Layout is the drawing of what the silicon looks like. Drawing transistors, made up of nwell, active, P+implant, N+implant, active, poly, contacts and wires. Drawing wires between them for connections. Drawing resistors, diodes, etc. and connecting them with metal layers wiring. Red polygons, green polygons, blue polygons, tan polygons, and a variety of other colors and shades for different layers. How is that in any way comparable to writing a program? What does your crayola language do when it sees blue? Red? Yellow? I've recently been doing analog layout for an automotive chip. Not programmable, all hardwired. It's the same task, the same polygons, as drawing an FPGA. And this analog chip has no processing capability whatsoever. There's no program of any level running inside that picture of a diode. It just IS a picture of a diode. There's no program running inside a PFET. It just is a PFET. It doesn't need to go look up how to respond when the gate is a 0, it just is something that has a conncetion between the source and drain when that gates is 0. And when the gate is 1, it just is an open connection. There's no lower level than machine code running in that transistor telling things what to do, it just does.

Whether you have a single shape of blue metal1 connecting two things together, or if you have a passgate (one or two transistors) and a multiplexor (two or 4 transistors) in between, connected with metal1, metal2, metal3, metal4, etc. jumpign all over the place, it's still a connection. Electrons conduct from point A to point B. Anything in the middle is just stuff for the electron to conduct through. They get to point B and charge up the gate to a 1, or they all flow back the other direction and discharge the gate to a 0. Those electrons actually are flowing mack and forth, they're not falsely pretending to just because you say so.
Bill T
All Glory to the Hypnotoad!
 

Offline psxphill

Re: FPGA for dummies
« Reply #32 on: December 06, 2011, 12:01:03 PM »
Quote from: billt;670350
I do not consider FPGA implementations to be "emulation".

 
An FPGA Amiga is not an Amiga, so it must either simulate or emulate one. Whether you consider it such is irrelevant & is more related to you preferring an FPGA over an emulator.
 
"emulation: The low-level simulation of equipment or phenomena by artificial means, such as by software modeling. Note that simulation may also allow an abstract high-level model."
 
"simulation: Simulation is the imitation of some real thing available, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviours of a selected physical or abstract system."
 
The major difference between an FPGA and a software emulator is you don't have to work round operating system limitations on an FPGA. However the FPGA is still an emulator.
 
Similar to a software emulator, the actual chips are simulated. To emulate a 68000 you'd have to dump the microcode and use that to run opcodes, using the same logic as the original chip. Nobody does that (at least not yet).
 
All we have is an emulation of the environment that the software runs in. Whether that is produced by software or an FPGA.
 
Quote from: billt;670432
Uhm, WHAT?! You're saying that silicon layout is similar to writing a computer program? You're on some pretty wacky weed there dude.

FPGA appears to be pretty similar to writing a computer program.
 
http://en.wikipedia.org/wiki/Verilog
http://en.wikipedia.org/wiki/VHDL
 
And you can bake your FPGA to a mass production chip.
 
There has been work to make it even more like writing computer programs.
 
http://sourceforge.net/projects/fpgac/
 
You could also go the other way and come up with a way of drawing all your different coloured polygons and turning them into a program.
« Last Edit: December 06, 2011, 12:23:29 PM by psxphill »
 

Offline hairy

  • Newbie
  • *
  • Join Date: Nov 2003
  • Posts: 34
    • Show only replies by hairy
Re: FPGA for dummies
« Reply #33 on: December 06, 2011, 01:34:08 PM »
Quote from: psxphill;670449

"emulation: The low-level simulation of equipment or phenomena by artificial means, such as by software modeling. Note that simulation may also allow an abstract high-level model."
 
"simulation: Simulation is the imitation of some real thing available, state of affairs, or process. The act of simulating something generally entails representing certain key characteristics or behaviours of a selected physical or abstract system."

Applying these rules strictly, a 68000 is just an "emulator" (or "simulator") of the same circuit made with discrete logic, which in turn is a simulation of transistor gates, and so on down to the electron flow level... hmmm yes, this might be true, any Amiga is just "emulating" the original Lorraine boards made out of TTL chips! ;)

Quote from: psxphill;670449

FPGA appears to be pretty similar to writing a computer program.


It appears, but it's not. Abstracting the circuit with a program-like listing it's just a convenient human representation.
The only parts of a VHDL (or verilog) design matching your description are testbenches, written in purely behavioural style.
AFAIK it's not possible to produce a working (complex) FPGA design out of purely behavioural description (i.e. like translating a software algorithms and constructs).
Structural VHDL is much more similar to circuit schematic entry and PCB layout, than to a programming language. Despite resembling the latter more.

Quote from: psxphill;670449

And you can bake your FPGA to a mass production chip.

Unfortunately it's not that simple. If it was, producing custom ASICs running at 500MHz and more would be one order of magnitude cheaper.
 

Offline persia

  • Hero Member
  • *****
  • Join Date: Sep 2006
  • Posts: 3753
    • Show only replies by persia
Re: FPGA for dummies
« Reply #34 on: December 06, 2011, 01:44:59 PM »
The FPGA isn't a 68K chip, it's emulating one.  A different FPGA emulates the custom chips.  Amiga OS runs on top of this emulated hardware.  UAE emulates a 68K in a program, this same program emulates the custom chips.  Amiga OS runs on top of this emulated hardware.
[SIGPIC][/SIGPIC]

What we\'re witnessing is the sad, lonely crowing of that last, doomed cock.
 

Offline ferrellsl

Re: FPGA for dummies
« Reply #35 on: December 06, 2011, 01:55:45 PM »
@billt

You're throwing pearls before swine.  Some obstinate folks on here just aren't going to believe you no matter what facts you present to them.  Just add them to your list of ignorant, argumentative, SOBs and move on.
 

Offline _ThEcRoW

  • Hero Member
  • *****
  • Join Date: Jul 2005
  • Posts: 753
  • Country: 00
    • Show only replies by _ThEcRoW
Re: FPGA for dummies
« Reply #36 on: December 06, 2011, 02:19:05 PM »
The FPGA*replay doesn't emulate, it RECREATES the cpu and custom chipsets of the Amiga. Is this hard to understand?. Also for the people who say is the same to program as well as designing a chip, what are you smoking guys?.
Amiga 1200 desktop. Apollo 030/50 Mhz 8mb ram + ClassicWB + Wb 3.1
Amiga 500 + ACA500Plus + 16gb CF | ECS Power!!!
C64 DTV + Keyboard mod. Waiting for a 1541 disk ve...
Mac Mini G4 1.42Ghz 1gb OSX(tiger)/Morphos 3.7 Registered
C64mini + usb drive with loads of games...
 

Offline persia

  • Hero Member
  • *****
  • Join Date: Sep 2006
  • Posts: 3753
    • Show only replies by persia
Re: FPGA for dummies
« Reply #37 on: December 06, 2011, 02:19:17 PM »
In other words FPGAs are "set it and forget it" emulation whilst software emulation is not. It's a much purer form of emulation.  

But if you tell the FPGA to create a gate, how does it do that?  What is the FPGAs actual method of creating a gate inside itself?  How does it remember that gate? What is actually going on at the physical level?  Surely there aren't a lot of nano-bots building and tearing down hardware inside the FPGA.
[SIGPIC][/SIGPIC]

What we\'re witnessing is the sad, lonely crowing of that last, doomed cock.
 

Offline _ThEcRoW

  • Hero Member
  • *****
  • Join Date: Jul 2005
  • Posts: 753
  • Country: 00
    • Show only replies by _ThEcRoW
Re: FPGA for dummies
« Reply #38 on: December 06, 2011, 02:20:24 PM »
Quote from: Nostromo;670431
So, if there is an "error" in UAE, it will be reproduced on FPGA?


From what i know, none of the fpga amigas uses uae in it cores, so i don't know how you reach to that conclusion...
Amiga 1200 desktop. Apollo 030/50 Mhz 8mb ram + ClassicWB + Wb 3.1
Amiga 500 + ACA500Plus + 16gb CF | ECS Power!!!
C64 DTV + Keyboard mod. Waiting for a 1541 disk ve...
Mac Mini G4 1.42Ghz 1gb OSX(tiger)/Morphos 3.7 Registered
C64mini + usb drive with loads of games...
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #39 on: December 06, 2011, 03:19:09 PM »
Quote from: psxphill;670449
An FPGA Amiga is not an Amiga, so it must either simulate or emulate one. Whether you consider it such is irrelevant & is more related to you preferring an FPGA over an emulator.


No, it's actually related to what I know an FPGA to be before anyone puts anything at all into it.
 
Quote
The major difference between an FPGA and a software emulator is you don't have to work round operating system limitations on an FPGA. However the FPGA is still an emulator.


I guess some people really want to believe that.
 
[/quote]FPGA appears to be pretty similar to writing a computer program.[/quote]
An older way to do FPGA design is to use a schematic diagram, which was the way before HDLs came along. Is drawing a schematic diagram really the same thing as writing C or assembly code?
 
After the Minimig is working to satisfaction, and the very exact same Verilog or VHDL (or schematic) is dumped into an ASIC, which is a fixed wiring design of the exact same circuit, is that ASIC still an emulation? Is the C64DTV less of an emulator than the CommodoreOne is, since the C64DTV is a fixed ASIC compared to CommodoreOne's FPGA?

Quote
You could also go the other way and come up with a way of drawing all your different coloured polygons and turning them into a program.


I'd like to see how you'd define a language based on colored shapes and their overlap interactions with each other, and how you'd have the compiler turn them into machine code.

I understand that an FPGA is a different sort of chip, and it does come closer to the idea of emulation, and I realize that some people want to embrace it as an emulation no matter what is inside of it. I am steadfast in my believe that an FPGA is "implementation" rather than "emulation". It seems a few of you are steadfast the other way around, and I guess maybe it's best to leave it at that.
Bill T
All Glory to the Hypnotoad!
 

Offline Thorham

  • Hero Member
  • *****
  • Join Date: Oct 2009
  • Posts: 1149
    • Show only replies by Thorham
Re: FPGA for dummies
« Reply #40 on: December 06, 2011, 03:55:29 PM »
Quote from: billt;670432
You don't know what a flipflop is, do you? Certainly not how a flipflop compares to an opcode. (it doesn't)
When you look at a flipflop as some unit of functionality then it does compare. The difference is the way in which they are used.

An instruction is a collection of circuits that the CPU uses when it fetches an opcode that tells it to use those specific circuits, while in an FPGA things like flipflops and logic gates (and what not) are connected together through user definable wiring.
Quote from: billt;670432
Uhm, WHAT?! You're saying that silicon layout is similar to writing a computer program?
No, not literally of course. In essence the process is similar, because in both cases you're telling a machine what to do (with an FPGA this is done by telling it 'how to be wired up', so to speak, unless I'm missing something).
Quote from: billt;670432
Not programmable, all hardwired. It's the same task, the same polygons, as drawing an FPGA.
And in an FPGA it's of course not hardwired, otherwise you'd have to open the FPGA and add and remove tiny little wires.
Quote from: billt;670432
There's no lower level than machine code running in that transistor telling things what to do
The point is that the transistor IS the lower level. Basically the components in the FPGA that you wire up together are the lower level parts I'm talking about.

An opcode is higher level because it's made of lower level components such as transistors. The lower level of a transistor would then be the components it is made of, and obviously these aren't instructions, but 'bits (NOT computer bits) of silicon and other stuff'.
Quote from: billt;670432
Those electrons actually are flowing mack and forth, they're not falsely pretending to just because you say so.
Flowing through connections that are, in an FPGA, user definable. There aren't any fixed connections that are user defined (would require the chip to be opened up), and therefore there's no hardwiring.

The programming of a CPU and an FPGA, while done in completely different ways, is both a form of programming. The difference is that a CPU fetches instructions from memory that tell the CPU which parts of it's circuitry to use, while with an FPGA you instead describe those circuits (lower level again).

The whole point is that the function the chips are performing isn't fixed, but user definable, in a CPU it's just done indirectly, because you can't change the circuitry, while with an FPGA you can.

An FPGA emulates a circuit, because while the components are fixed, it's wiring is not, and therefore the circuit isn't fixed. It imitates a circuit's function by providing user definable wiring. Wires are part of a circuit, and these aren't fixed here.
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: FPGA for dummies
« Reply #41 on: December 06, 2011, 03:59:53 PM »
I find this philosophical argument about Emulation vs Real hardware equity funny.

Either via a software emulator or an FPGA, there is a recreation of the original functionality of the old chips. Neither is more "real" than the other and both "emulate" (meaning: appear to be like the original hardware from a user and software perspective) the Amiga.

For those unsure about FPGA chips, think of them as thousands of little 74xx chips in one package that can be connected anyway desired by software.

An FPGA allows a hardware designer to build his circuits in a single chip, rather than use lots of separate components all soldered together on a circuit board :)

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #42 on: December 06, 2011, 04:00:01 PM »
Quote
Similar to a software emulator, the actual chips are simulated. To emulate a 68000 you'd have to dump the microcode and use that to run opcodes, using the same logic as the original chip. Nobody does that (at least not yet).

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) It's one way to do things, and quite common, but not the only one. In a lot of processors the programmer won't have any visibility of the microcode and won't know what it looks like. Some CPUs allow access there, but others it's an invisible thing that we'll only know is even present or not if the designer tells us so.
« Last Edit: December 06, 2011, 04:02:44 PM by billt »
Bill T
All Glory to the Hypnotoad!
 

Offline JimS

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1155
    • Show only replies by JimS
Re: FPGA for dummies
« Reply #43 on: December 06, 2011, 04:40:13 PM »
Quote from: persia;670474

But if you tell the FPGA to create a gate, how does it do that?  What is the FPGAs actual method of creating a gate inside itself?  How does it remember that gate? What is actually going on at the physical level?  Surely there aren't a lot of nano-bots building and tearing down hardware inside the FPGA.


The gates and other logic elements are already there. The connections between them are what gets loaded to "wire up" whatever circuit the designer defines. Check out the first chapter of this http://www.xess.com/appnotes/FpgasNowWhatBook.pdf
Obsolescence is futile. You will be emulated. - Amigus of Borg
 

Offline JimS

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1155
    • Show only replies by JimS
Re: FPGA for dummies
« Reply #44 from previous page: December 06, 2011, 04:51:25 PM »
Quote from: bloodline;670502
I find this philosophical argument about Emulation vs Real hardware equity funny.

Either via a software emulator or an FPGA, there is a recreation of the original functionality of the old chips. Neither is more "real" than the other and both "emulate" (meaning: appear to be like the original hardware from a user and software perspective) the Amiga.


I've thought that this emulation vs "real" argument amusing at times as well. I'm more concerned about semantics here. There is a difference between the two, from the technical viewpoint. That has nothing to do with which is "better" or which is a "real Amiga".
Quote

For those unsure about FPGA chips, think of them as thousands of little 74xx chips in one package that can be connected anyway desired by software.

An FPGA allows a hardware designer to build his circuits in a single chip, rather than use lots of separate components all soldered together on a circuit board :)


I visualize the original Lorraine wire wrapped prototype here. ;-)
Obsolescence is futile. You will be emulated. - Amigus of Borg