Welcome, Guest. Please login or register.

Author Topic: FPGA for dummies  (Read 59581 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« 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 all replies
Re: FPGA for dummies
« Reply #1 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 HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #2 on: December 16, 2011, 02:28:31 AM »
Quote from: psxphill;671368
Even an FPGA & ASIC running from the same VHDL don't necessarily behave the same way due to clock skew.


ASICs don't run VHDL to function. You obviously don't know what you're talking about, perhaps a book would help. Here are Jeri Ellsworth's recommendations:
https://www.youtube.com/watch?v=kobf8IOB0oA
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #3 on: December 16, 2011, 09:42:51 AM »
Quote from: psxphill;671563
It's ok, I know about baking an ASIC from VHDL.
 
Running is a perfectly acceptable term for operating a circuit.
 
I guess you misunderstood what I meant, those books might come in useful.


A baked ASIC STILL doesn't run VHDL, again would suggest you do a bit more research.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #4 on: December 16, 2011, 11:01:02 AM »
Quote from: psxphill;671573
You take the VHDL & it gets turned into an ASIC. I know how that works.


Okay, explain it then. What is involved in that translation between VHDL and an ASIC? If you know how it works, then it won't be a problem explaining it. I await your reply.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #5 on: December 16, 2011, 02:05:00 PM »
Quote from: psxphill;671584
logic synthesis -> placement tool -> routing tool -> profit

Good. So do you know how much work is required for those steps? The simplification you're implying is that tools do most of the work, whereas the reality is moving from FPGA to ASIC is a labour intensive process that makes use of tools to simplify where possible. There are reasons why ASICs take months to design, even with a working FPGA version in place.

In this process, VHDL is not much more than a design spec, you can use it to kick off the logic synthesis process, but beyond that it's not going to be an active factor. This is why saying an ASIC 'running' VHDL is a mistake, unless you're making some gross oversimplification that any description of an integrated circuit is a 'VHDL'.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #6 on: December 16, 2011, 04:02:15 PM »
Quote from: psxphill;671589
The discussion was about whether using VHDL that described the behaviour of an Amiga to build an FPGA or an ASIC was simulation/emulation, the procedures you go through to do that are irrelevant to that discussion.

Let's just put it like this, I'm surprised that you brought up VHDL in the same sentence as ASIC, as they are not related.

Quote from: Thorham;671595
Are you saying you can't implement an FPGA circuit design directly using an ASIC?

It's not impossible, the issue is that you wouldn't want to. To understand why, need to know about logic elements/logic cells (often shortened to 'LE'). See here:
http://en.wikipedia.org/wiki/Field-programmable_gate_array#Architecture

FPGAs make certain compromises in order to be reprogrammable. Designing a function in an FPGA relies on use of these generic building blocks, whereas with ASICs you have the freedom to make a design more efficient by simplifying/optimising the circuitry used. So whilst you could build an ASIC that mirrored the design of an FPGA, you'd be losing out if you did.

Before you start on the 'so FPGAs are only emulations' schtick, the important point to note is that even though the designs are different, they can be functionally identical. Think about it like this, Sony brings out a TV using an FPGA to drive the circuitry. They then bring out a new model, which is the same as the old one in every way, except the FPGA is replaced with an ASIC. Is the later model an emulation of the first? No.
« Last Edit: December 16, 2011, 04:09:54 PM by HenryCase »
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #7 on: December 17, 2011, 10:11:05 AM »
Quote from: psxphill;671611
If you design one circuit to work the same as another one then it is a simulation.


So, in your opinion, in the Sony TV example I gave, the ASIC is a simulation of an FPGA? If so, then I put it to you that nearly every ASIC that has ever existed is a simulation. Heck, Amigas are just simulations of Lorraine. Who knew we were all using simulations after all!

Quote from: psxphill;671611

When the company that made the original uses the same design but slightly modifies it (i.e. switches from an FPGA to an ASIC) then it's not.


Ah, I see, you realised you'd gone too far, so stuck in this caveat about it needing to be made by the original company. You're clutching at straws, seriously. Let's put it like this. Imagine Commodore went bankrupt after the A3000, and was bought by Atari. Atari then bring out a new Amiga model, the A1200. Does that now make the A1200 a simulation, whereas it wouldn't be if Commodore released it? I should point out that in this hypothetical situation, the Atari A1200 is absolutely identical to the Commodore A1200 we know today, apart from the company that made it.

Quote from: psxphill;671611

The same way that IBM made IBM PC's and other companies produced IBM PC clones. The term clone doesn't refer to the circuit being a direct copy, only that the same software can run. In todays language it would be an emulation.


Your use of the term 'emulation' is very wooly. The only major difference between an IBM clone and an IBM PC is the company that assembles it. IBM don't make PCs any more, but if they did, think about this... IBM brings out a new desktop PC. I then build a PC for myself that uses the EXACT SAME PARTS as the IBM one. Is my computer emulating/simulating the IBM one?

I think where you're going wrong is that you're trying to stretch the term 'emulation' to encompass the term 'copy'. When it comes to computers, copying something is not the same as emulating something. Emulation has a specific meaning when it comes to computers, it means making one computer run programs from an incompatible one. Copying, on the other hand, is prevalent throughout computing. For example, if I copy a file (i.e. clone it), am I emulating the file? I'm sorry, but your definitions are not standing up to scrutiny.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #8 on: December 17, 2011, 09:02:02 PM »
Quote from: psxphill;671719

Emulation doesn't just refer to software that makes a computer behave like another. However much you wish it did.


That's where you're wrong. As language evolves, words pick up new meanings for specific contexts. For example, with computing, you have a bunch of words that existed before modern computing, but that have specific meanings when applied to computers: kernel, shell, mouse, pipe, etc...

Furthermore, as usage of the word changes, so too does our definition for it. For example, call someone a 'cynic' today and you have a certain image of a bitter, morose person, whereas the original meaning is almost spiritual in origin (See for yourself: http://en.wikipedia.org/wiki/Cynicism ). However, if you called someone a cynic today, you are unlikely to be referring to their wish to "live in agreement with Nature.".

The same is true of the term 'emulation'. It now has a specific meaning when it comes to computing. See for yourself:
http://dictionary.reference.com/browse/emulate

Quote from: psxphill;671719

IBM PC's and clones share some chips, but the circuit board is different. It was only really the processors that were shared, the rest that makes it a clone was the same memory map etc. Before nvidia/ati/s3 etc you had custom graphics cards that emulated only certain functionality of IBM's original chips. Most graphics chips these days only emulate enough of VGA for the BIOS and windows boot screen & the days are numbered for that. Windows 7 uses a VESA mode (1024x768 IIRC) on bootup instead of Mode-X.
 
The term clone is similar to emulation in that IBM never made any clones, even though they made loads of different PC's. The clones were just as different to each other as they were to IBM's designs.


You missed my point. I was talking about a hypothetical situation where all the components were identical, and it was only the company assembling the devices that changed. It's perfectly possible to build a PC that matches an IBM design exactly, my question was, is it a clone purely because of the company that put it together? To my mind, it's the device itself which is of interest, the company that makes it is not of any great importance.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #9 on: December 17, 2011, 11:23:35 PM »
Quote from: A6000;671757
Be careful not to become to exacting in your definition of what is real, since many companies will use chips from different sources from one month to the next.
So two computers made by the same manufacturer, a few months apart, in the same factory may not be identical, but does that mean that one is emulating the other?


A6000, psxphill is arguing that it doesn't matter that the designs are different, as long as they come from the same company. IMO bringing the role of companies into this is a red herring, as we're talking about how technology is identified, not the manufacturers of that technology, but that's what is being proposed.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #10 on: December 18, 2011, 12:53:25 PM »
Quote from: psxphill;671771
You better explain that to everyone else that disagrees with you.
 
from http://en.wiktionary.org/wiki/emulate
(computing) of a program or device to imitate another program or device
 
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4556828
http://www.syntiac.com/fpga64.html
http://dl.acm.org/citation.cfm?id=1999455
http://www.linkedin.com/in/mattdipaolo
http://arstechnica.com/civis/viewtopic.php?f=2&t=1152634&start=40
http://www.patentgenius.com/patent/6965972.html
http://www.scene.org/showforum.php?forum=11&topic=173109
 
The "emulator in an fpga is not emulation" stance seems limited to a few commercial "emulator in an fpga" projects.


First of all, some of those examples weren't related to computing, as I said before the term emulation has specific meaning in computing, this does not need to extend to the whole electronics industry.

Secondly, FPGA re-implementations of entire computing platforms is a relatively new phenomenon, so it's not surprising that people would use the closest word they could think of to describe them.

Thirdly, some of the content you linked to uses other, more descriptive, terms to describe what's occurring, e.g. "FPGA-64 is a re-implementation of the Commodore-64 computer using reconfigurable logic chips." Re-implementation is a clearer way of describing the process being followed.

Quote from: psxphill;671777

Well that was true for processors by Intel & Motorola.

Do you work in the industry? Curious to know how you know this.

Quote from: psxphill;671812
The fools who like to show off

So someone who disagrees with you is a fool who likes to show off. Hmm... I didn't call you a fool, I would expect the same in return.
« Last Edit: December 18, 2011, 01:25:39 PM by HenryCase »
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #11 on: December 18, 2011, 12:58:34 PM »
Quote from: JimS;671775
Not only that, but the word "computer" had a meaning before the electronic device was invented. It originally referred to a person who had the fun task of calculating by hand huge and tedious tables of math functions. (Sin Cos and such)


Quite right. This is the description of computer that existed at the time of Turing, in his work (and the work of other computing pioneers) he used this earlier definition to convey what was being proposed.
« Last Edit: December 18, 2011, 01:13:44 PM by HenryCase »
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #12 on: December 18, 2011, 02:20:48 PM »
Quote from: Thorham;671831
What I want to know is how many times I still have to say I was wrong?


Thomham, don't worry about this anymore, it's better to be inquisitive, you don't need to apologise for showing an interest in a new topic.
"OS5 is so fast that only Chuck Norris can use it." AeroMan
 

Offline HenryCase

  • Hero Member
  • *****
  • Join Date: Oct 2007
  • Posts: 800
    • Show all replies
Re: FPGA for dummies
« Reply #13 on: December 18, 2011, 04:09:04 PM »
psxphill, I've just finished looking through this entire thread, and noticed you said before you'd worked on software-based emulation (guessing for the PSX, judging by your name). As this means you should be familiar with programming, I'll try and explain my point using a programming analogy.

In object-oriented programming you have, amongst other ideas, the concepts of classes and objects. Classes describe the features of an object (variables used, methods allowed, whether the class is a member of a larger class, etc...), whereas objects are instances of a class, they are the items built by following the specifications in a class.

To me, Amigas are a class of computers, and the objects we use follow the specifications laid out in this class, to varying degrees. The A500 is an object that follows this spec, the Minimig is also an object that follows this spec. They are both implementations of the design ideas of the Amiga.

In my opinion, which is shared by many, emulation requires translation. Not translation from a design spec (class) to a computer (object), but translation from one object to another, fitting the code designed for one computer into the constraints of another.

Re-using the word 'emulation' when describing these devices does not capture this difference, which is why 'implementation' is preferrable.
« Last Edit: December 19, 2011, 07:23:18 AM by HenryCase »
"OS5 is so fast that only Chuck Norris can use it." AeroMan