Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 59941 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show all replies
Re: FPGA for dummies
« on: December 05, 2011, 08:04:41 PM »
The 680X0 CPU in your Amiga, as well as the various ECS/AGA chips, are silicon chips which are fixed in a permanent state.  They were custom chips, designed for a specific purpose.

The FPGAs of today are like 'blank chips'. There's nothing at all in them.  What you do, is at boot-time, you 'select' which 'soft core' you want 'loaded' into that FPGA chip. It (the FPGA chip) then becomes whatever you need it to become.  In the case of Minimig and FPGA Replay etc, the 'soft core' contains the instructions necessary to turn that FPGA into a 68K CPU, complete with ECS, AGA chips etc.

So it goes from being a machine with a blank chip, to being a machine with a 680X0 CPU and AGA! And this is NOT emulation, it is done in real silicon, thanks to the FPGA chip! So now, when you run Amiga software, all it sees is the 68K CPU, the AGA chips, etc. and they will run no differently than if it was a 'real' Amiga, because it IS a 'real Amiga'.  The FPGA reacts to Amiga software in much the same way as the 68K, Lisa, etc. chips in an A1200 would do.

With the FPGA Arcade Replay, you'll eventually have a choice of hardware platforms to choose from at boot-up: Amiga, Atari ST (gasp!), Commodore 64, Arcade machines, etc.  The FPGA 'becomes' what you need it to become, and hey presto! You have a custom computer system created at boot time :) The beauty of the FPGA is, however, that unlike 'real' chips, the FPGA code can be enhanced and improved, added to.  AGA can become SuperAGA.  You can  eventually have a CPU with the compatibility of an 68020 but running software faster than a real 68040 or 68060 could, etc.

I hope this clears things up for you?
« Last Edit: December 05, 2011, 08:08:56 PM by ShapeShifter »
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show all replies
Re: FPGA for dummies
« Reply #1 on: December 05, 2011, 08:31:22 PM »
Well, it depends on what you're looking to do.  In my case, I need a replacement for my Amiga 4000, which sadly died some time ago :(

I need something which is cheap, yet which can outperform the older Amigas, and offers me something new.  I'm not really interested in something expensive, or bulky. I want something which is relatively cheap, yet powerful and expandable - and small.  For me, FPGA Replay fits the bill perfectly!

Not only can it run at 030/040 speeds, but they're working on making the core perform as well as an 060 CPU.  The Chip RAM limitation has also been removed - the Replay supports upto 50MB(!) of Chip RAM.  This makes entirely new video modes possible.  AGA can perform functions much faster, and there's no need to buy a graphics card since one's essentially included in the FPGA Replay's core.  I also like the idea of being able to use a SD Card as my hard disk.  Something about that is just really neat - and convenient too! :)

As for connecting to printers or network cards - well, there are USB connectors, and a slot for a daughter board expansion on the Replay.   There are plans for a daughter board which will contain a socket for a 68060 CPU, as well as ethernet and USB ports, etc. so networking should be possible if provided with compatible drivers.  I'm not really sure about printers, I'm afraid.  This isn't something I've looked into as it's enough of a problem just trying to get my printer to work with the MacBook! :lol:
« Last Edit: December 05, 2011, 08:34:53 PM by ShapeShifter »
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show all replies
Re: FPGA for dummies
« Reply #2 on: December 05, 2011, 10:35:32 PM »
It is not emulation as we've come to understand that term because there is no software playing 'translator' between the Amiga software designed for one architecture (68K+AGA), and the radically different host hardware (Intel+Nvidia) it must function under.  Software emulation involves on-the-fly translation from one architecture to another.  The FPGA on the Replay, OTOH, simply 'becomes' the hardware of a real Amiga.  There's no translation.  The FPGA 'becomes' the 68K CPU, the Lisa chip, and so on.

The hardware on the Replay, when functioning with the Minimig AGA soft core, is the hardware equivalent of a real AGA chipset with a 68K CPU.  You won't physically see a 68K CPU and Lisa chip inside the system, but they're there - implemented within the FPGA itself.

This is why the Replay's motto is, very appropriately enough, "No Emulation. No Compromise." :)

Of course, the FPGA core is not based on original Commodore code because that's not available to us.  But the Minimig AGA soft core on the FPGA is designed to respond to the same instructions in as similar a way as possible to a 'real' Amiga, and so it has a high degree of compatibility.

Quote from: Thorham;670361
It is an emulation in the purest sense of the word because it's not done in silicon but simply by using instructions that are of a lower level than machine language instructions. An FPGA is just a programmable chip just like a CPU, it only serves a different purpose than a CPU.
When most people think of emulation, they think of something akin to a real-life translator, sitting in the middle of the 'Amiga' and the host hardware.  I think if I were to search for an appropriate word to describe what the Replay is doing, I would go for the word 'cloning' over emulation.  It's kind of like how the original IBM PC was cloned - or how the AMD functions the same as an Intel CPU.  Yes, in a technical sense they may be 'emulating' the hardware they're designed to copy/replace.  But I don't think we'd use the word emulation to describe what they're doing.  The Replay is only 'emulating' an Amiga to the same extent an AMD 'emulates' an Intel CPU.
« Last Edit: December 05, 2011, 10:54:04 PM by ShapeShifter »
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show all replies
Re: FPGA for dummies
« Reply #3 on: December 05, 2011, 11:11:47 PM »
Quote from: persia;670365
Interesting, so it is or isn't emulation depending on how you define emulation, sort of emulation in a cheshire cat or perhaps a Schrödinger's cat sort of way.
Exactly! :)

The English language can often be fuzzy, but what's not fuzzy is what we tech-heads typically mean when we refer to emulation.  We're referring to software which has been written to enable programs written for a completely different architecture to operate under an alien host system, via an on-the-fly translation process.

Which has absolutely nothing to do with what the Replay and other FPGA devices are doing.  They no more 'emulate' an Amiga chipset /CPU than an AMD CPU 'emulates' an Intel CPU.  We're simply talking about a different way of implementing the Amiga chipset and CPU in hardware.  In that sense, these FPGA systems are more like Amiga clones.
« Last Edit: December 05, 2011, 11:14:37 PM by ShapeShifter »
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show all replies
Re: FPGA for dummies
« Reply #4 on: December 06, 2011, 12:27:42 AM »
Quote from: billt;670368
Calling an FPGA an emulator is like calling a ROM chip an emulation of a ROM chip. Sounds weird huh? It makes more sense to say that a ROM chip IS a ROM chip, no?

It's funny you bring up ROMs.  I was trying to come up with a similar analogy - that FPGAs are to fixed-code chips like Lisa, what RAM is to ROM.

Both these pairs can hold programming, it's just that one pair is empty at boot-up and capable of being rewritten (RAM/FPGA); whilst the other (ROM/Lisa) has programming which is fixed and read-only, but is immediately accessible on power-up (ROM/Lisa).

If I have a 1.3 ROM machine, and I boot up and then soft-kick it with Kickstart 3.1 (into RAM), am I now 'emulating' 3.1, or actually running the real thing? Of course, I am running the real thing; it's no different to an Amiga with a 3.1 soldered to the circuit board (except I've used up a little RAM).  It's immaterial whether the kernel is present in ROM or RAM to the Amiga.  The operation is pretty identical either way, and the speed and performance is much the same however it's loaded.

If it helps people to understand the concept, just think of using FPGAs to implement AGA as being like the equivalent of using RAM to soft-load a Kickstart (much as the A1000 did). Except instead of putting Kickstart into RAM, we're loading AGA chips into FPGAs.  FPGAs, like RAM, lose their contents upon power-down, but they have the advantage they can be programmed. That doesn't make it any less a 'real Amiga' than one with fixed AGA chips, any more than a machine soft-kicked into 3.1 isn't really running Kickstart 3.1.
« Last Edit: December 06, 2011, 12:41:07 AM by ShapeShifter »
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show all replies
Re: FPGA for dummies
« Reply #5 on: December 06, 2011, 06:45:01 PM »
Quote from: psxphill;670522
Even if you cloned the gates 100% using an FPGA it would still be an emulation (because the original didn't run on an FPGA).
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!

Does this mean the original Amiga 1000 wasn't a fully-real Amiga? Or are future Amigas the emulated ones, because they didn't copy the exact method used on the original Amiga and were using a different, hardware approach?

If the FPGA Replay is 'emulating' an Amiga simply because it uses a different approach to configure the chips, then so is the Amiga 1000, or anyone else who soft-kicks a Kickstart on their Amiga for whatever reason (e.g. to upgrade/downgrade their machine without replacing the physical ROMs.)

My point here is there's more than one way to achieve the same result.  If you can recreate 100% the operation of the original Amiga chips, in hardware, and without any need for real-time translation, then that qualifies as a clone system, in my view.  Software emulation is something very different, and involves real-time translation from one system architecture to another.

I must admit, though, this entire topic seems to be devolving into a debate over semantics.  I think we all know where each other is coming from, and that most of this discussion seems to hinge on how each individual poster interprets the meaning of the word 'emulation'.  We're debating different meanings of the same term, whilst agreeing for the most part on how the different technologies work.  Can't we declare a truce? ;)
« Last Edit: December 06, 2011, 06:53:53 PM by ShapeShifter »