Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 31659 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline b41d3rTopic starter

  • Jr. Member
  • **
  • Join Date: Sep 2011
  • Posts: 57
    • Show only replies by b41d3r
FPGA for dummies
« on: December 05, 2011, 07:06:42 PM »
Hi,

I'm really noob in Amiga, and I watch all this excitement around FPGA with double dutch terms for me as I'm more into software than hardware. As a matter of fact, not at all in hardware.
Can someone tell a poor ignorant what it implies for us ?
Is it something really so marvelous for the future of our platform ?
Why ? Does it concern only the game field ?
 

Offline JimS

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1155
    • Show only replies by JimS
Re: FPGA for dummies
« Reply #1 on: December 05, 2011, 07:27:30 PM »
Using FPGAs makes it possible to develop hardware with the same sort of investment as software. Once you have a basic platform like the minimig, FPGAarcade Replay, or the Natami, you can redesign the hardware at will by "recompiling" the design and reloading. You're not tied down to obsolete hardware. The folk working on the AGA minimig and the Natami are optimising the CPU - something Motorola (Freescale) is unlikely to do, as well as updating the Amiga chipset.
« Last Edit: December 05, 2011, 07:30:31 PM by JimS »
Obsolescence is futile. You will be emulated. - Amigus of Borg
 

Offline b41d3rTopic starter

  • Jr. Member
  • **
  • Join Date: Sep 2011
  • Posts: 57
    • Show only replies by b41d3r
Re: FPGA for dummies
« Reply #2 on: December 05, 2011, 07:37:30 PM »
Thanks.
What I don't still get is that if I can configure my hardware in a software fashion, what about my Amiga ?
Can it, with only help of new drivers, work in a new hardware environment ?
I thought these monolithic machines were quite impossible to separate from their initial specification. Will it work only for new Amiga OS or for the classics too ?
 

Offline JimS

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 1155
    • Show only replies by JimS
Re: FPGA for dummies
« Reply #3 on: December 05, 2011, 07:58:27 PM »
An existing classic Amiga, probably not... The FPGA amigas are about recreating the existing Amiga hardware - with extensions - inside an FPGA chip. How well that works depends on the skill of the people doing the design. Frankly, it amazes me that it works at all, much less as well as it does. ;-)
You can add new hardware beyond what the the original spec defined.. then you have to have some sort of software... or the new hardware could emulate some existing classic hardware that already has software. The AGA amiga core has a "gfx card" built into it that's compatible with an existing workbench extension made for the cards used in "real amigas".
Obsolescence is futile. You will be emulated. - Amigus of Borg
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show only replies by ShapeShifter
Re: FPGA for dummies
« Reply #4 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 b41d3rTopic starter

  • Jr. Member
  • **
  • Join Date: Sep 2011
  • Posts: 57
    • Show only replies by b41d3r
Re: FPGA for dummies
« Reply #5 on: December 05, 2011, 08:11:41 PM »
Yes, very much.
But I suppose there's a bonus compared to using the original machine itself apart from the capacity of changing my system at will.
If I have a classic Amiga, is there any interest for me to get this thing ?
It seems so by reading posts about it,but I don't see why.
Will it for example allow me to connect to modern printer or network card by some trick ?
 

Offline Everblue

  • Hero Member
  • *****
  • Join Date: Dec 2004
  • Posts: 584
    • Show only replies by Everblue
Re: FPGA for dummies
« Reply #6 on: December 05, 2011, 08:14:06 PM »
For me I'd pick say, an Arcade FPGA because it comes with:

A 030 or even faster equivalent CPU
A DVI connector (built in scandoubler!)
64 MB of RAM

All that of the fraction of the price should I get a similar gear with real Amiga parts... Sure, it may not be 100% compatible but its still damn good.

Oh and its all brand new.
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #7 on: December 05, 2011, 08:16:33 PM »
Quote from: b41d3r;670318
Hi,

I'm really noob in Amiga, and I watch all this excitement around FPGA with double dutch terms for me as I'm more into software than hardware. As a matter of fact, not at all in hardware.
Can someone tell a poor ignorant what it implies for us ?
Is it something really so marvelous for the future of our platform ?
Why ? Does it concern only the game field ?


I've not used FPGAs before, but I've done a lot of silicon layout to make FPGA chips. I'm this spring taking a VHDL course at university using FPGAs. I hope to learn how to do some of my ideas. :)

An FPGA is a generic logic chip, which can be programmed to become a specific logic chip. You can make it become nearly any logic circuit you want. ASIC chip designers use FPGAs to prototype and debug their cictuits before spendign huge amounts of monty on ASIC fabrication masks. (kindof like camera film negatives, it's a similar usage) People cho cannot afford an ASIC production can use FPGAs in their product instead, since they are cheaper for a small quantity need. (for very large quantity needs, ASICs are far cheaper than FPGAs)

Most FPGAs today are reconfigurable while running, which means you can change part of the circuit they are behaving as. This has a benefit in that some things won't always run at the same time as each other, and you can have only one of those things loaded into the chip as it is needed, and change to the other as needed.

There are limitations, as each FPGA has a certain capacity, a circuit requiring more than a chip has to offer won't fit and needs a larger chip. But today FPGAs can hold quite a lot of things. And you can use multiple FPGAs together to increase total capacity. The other limitation is performance. It takes a lot of overhead to make an FPGA as generic and programmable as it is. To act as a simple AND gate, it will run slower than an ASIC that can simply place a single AND gate and nothing else around it. The FPGA needs to control routing through passgates and multiplexors, which slow things down compared to a simple wire in an ASIC.

To "program" an FPGA (the technically correct term is "configure") you load a bitstream file, which tells which passgates to go on or off, which way for multiplexors to select, what logic each segment will behave as (this programs a small RAM to act like logic, logic inputs go to the address bits, the output of the RAM is the logic output), and selects which flipflops are or are not used in the path, etc. Then the FPGA "is" your desired logic circuit. Some people think this is "emulation", I disagree. It's "implementation". It's not running software. It's not pretending to be an AND gate, it is an and gate. Or an Amiga500. or an Atari. Or a Commodore64. Or a Zorro to PCI bridge. Or a graphics chip. Or an ethernet controller. Or an IDE controller. Or a SCSI controller. Or an AC97 audio controller. Or...

The two big languages for FPGA designers to use are VHDL (popular in europe and US military/aerospace indsutries) and Verilog (popular in commercial US industries). You don't "compile" it, you "synthesize" it into a logic gate netlist. The gates netlist is then placed and routed into the FPGA fabric to become your desired logic chip. The FPGA does not "run" the netlist, it "becomes" the netlist. The chip does not normally change the netlist it "is" while running, the circuit it implements is what runs. Any change to the FPGA netlist is called a "reconfiguration", and once that is done, it now "is" the new circuit.

As for games, I'm not sure how it would best improve things there. It could be an FPU if you otherwise lack one. I've toyed with the idea of making an Altivec unit on a PCI card for PowerPC chips that lack one. (Sam4** for example) I'm not sure how well that would perform compared to software emulation of Altivec on a non-Altivec CPU, as things need to exit the chip, cross PCI, get into the FPGA, run at whatever speed the FPGA can give me, and go back through PCI into the CPU again. All that overhead may ruin the idea. And I have a lot to learn about microprocessor design before I try.

As for other ways we can benefit from it, we can use it as an accelerator for various things. I had an idea way back in the day to make an FPGA on a Zorro card to be a multimedia hardware codec. A reconfigurable one, so it would be a hardware MP3 decoder or encoder, or an mpeg2 video decoder or encoder, or mpeg4, or ogg vorbis, etc. for Classic machines whose 68060 just wasn't fast enough to keep up. Never made it of course, but could have been. need an encryption chip? FPGA can. There's a lot of things it can be used for.

I do think that FPGA offers a lot. I would love to see a big and fast one on a motherboard. Some Sams have a small FPGA. It's not big enough for my taste. Not does it have connections to do a lot of things. I'd like to see it multiplexed with audio connectors on the back, so it can be an audio chip. (HD Audio/Azalia anyone?) I'd like to be able to multiplex whatever VGA card I have through it, so the monitor can take the VGA card or can take something video out of the FPGA. (AGA anyone?) I'd like a lot of pins for connecting stuff up. (SCSI anyone? or Ethernet? or what else can you imagine?) I'd have done for the X1000 Xorro slot an FPGA instead of an Xmos chip, but you can probably do a lot in Xmos that you can in FPGA. But in a big fast FPGA, you could do so much more than an Xmos. (IMHO of course, as I know far more about FPGAs and only a little about Xmos. Everything I imagine using Xmos for, I could do in FPGA. Some things I imagine using FPGA for I don't think I could do in Xmos)

But for a PC-alike thing like X1000, XE, Sam460, etc. I think we'll get more use out of PCI/PCI-Express slots. Most things I'd put into FPGA are already on store shelves as PCI or PCI-Express cards.

Things like Minimig or natami or CloneA or AOocs are made for FPGAs. With enough unused space in there, you can add more. Minimig with its own native SCSI bus. Minimig with its own native SVGA (as Yaqube is doing already for FPGA-Arcade board) Minimig with FPU. Minimig with native PCI slot. Whatever you want to add, if there is capacity and usable connections, you can. (If there are not usable connections or capacity, make a new board with those connections and larger FPGA)
Bill T
All Glory to the Hypnotoad!
 

Offline b41d3rTopic starter

  • Jr. Member
  • **
  • Join Date: Sep 2011
  • Posts: 57
    • Show only replies by b41d3r
Re: FPGA for dummies
« Reply #8 on: December 05, 2011, 08:18:15 PM »
And no legal infringement ?
If I need a new system, I assume I must already have it.
So, it could only provide a cheap spare system but not a way of commercializing new Amiga on the market, right ?
« Last Edit: December 05, 2011, 08:24:16 PM by b41d3r »
 

Offline billt

  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 910
    • Show only replies by billt
    • http://www.billtoner.net
Re: FPGA for dummies
« Reply #9 on: December 05, 2011, 08:27:53 PM »
Quote from: b41d3r;670330
Yes, very much.
But I suppose there's a bonus compared to using the original machine itself apart from the capacity of changing my system at will.
If I have a classic Amiga, is there any interest for me to get this thing ?
It seems so by reading posts about it,but I don't see why.
Will it for example allow me to connect to modern printer or network card by some trick ?


If you already have a classic Amiga you're happy with, I'm not sure Minimig etc. will change anything for you. The biggest thing you might see is performance improvement. Because FPGAs today can run a pretty fast system, you can see FPGA-Arcade or Natami implementing a CPU faster than your dedicated 680x0 chip. While some will have 68060 hard chip to start with, that is to be useful in making sure the AGA chipset and other things work well before making the internal 680x0 core. Easier to know where a bug in your design is that way, compared to "is that in my graphics chip or in my CPU?". Once the chipset cores are good, then make and debug the 680x0 core. It's expected that these internal 680x0 cores will perform faster than any hard 680x0 from Motorola/Freescale.

Also, if you don't have the fastest 68060 in your classic, then an FPGA-Arcade when it has a Minimig port including internal 680x0 may be a cheaper performance upgrade than a real classic 68060 board. it might hold more RAM than a Classic as well, though I'm not sure what the plans are for that on FPGA-Arcade or other FPGA boards.
Bill T
All Glory to the Hypnotoad!
 

Offline ShapeShifter

  • Newbie
  • *
  • Join Date: Dec 2011
  • Posts: 45
    • Show only replies by ShapeShifter
Re: FPGA for dummies
« Reply #10 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 b41d3rTopic starter

  • Jr. Member
  • **
  • Join Date: Sep 2011
  • Posts: 57
    • Show only replies by b41d3r
Re: FPGA for dummies
« Reply #11 on: December 05, 2011, 08:33:49 PM »
Thank you all, especially Billt.
Now I can graduate in a computer course thanks to you ! :)
 

Offline Everblue

  • Hero Member
  • *****
  • Join Date: Dec 2004
  • Posts: 584
    • Show only replies by Everblue
Re: FPGA for dummies
« Reply #12 on: December 05, 2011, 08:39:26 PM »
I'd like to ask a question ;) .... is the Amiga core for Arcade FPGA (and minimig?) based on UAE or its reverse-engineered?
 

Offline b41d3rTopic starter

  • Jr. Member
  • **
  • Join Date: Sep 2011
  • Posts: 57
    • Show only replies by b41d3r
Re: FPGA for dummies
« Reply #13 on: December 05, 2011, 08:49:37 PM »
Quote from: ShapeShifter;670336
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:


Ok, so I can get into something new thanks to this hard. So Amiga would become a viable modern system. And in fact, it could compete with new Amiga if not outclass them.:hammer:  This could lead to an internal competition in Amiga world or a quick adaptation in the current Amiga.
But something troubles me, how the hell can I transmit my "real" Amiga to the FPGA ? Can I do it myself or do I need a prebuilt software ?
 

Offline Everblue

  • Hero Member
  • *****
  • Join Date: Dec 2004
  • Posts: 584
    • Show only replies by Everblue
Re: FPGA for dummies
« Reply #14 on: December 05, 2011, 08:51:02 PM »
Ummm you can't? You just buy an FPGA motherboard with all the parts populated. Put the kickstarts on the SDCard and more or less you are good to go. Maybe, technically, you could dump your own Kickstart from real Amiga HW :)