Welcome, Guest. Please login or register.

Author Topic: Coldfire - Binary Compatible  (Read 21678 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Hans_

Re: Coldfire - Binary Compatible
« on: January 31, 2008, 02:29:14 PM »
Quote

hbarcellos wrote:
In my rumble opinion, FPGA is emulation. You code something generic to act like the real thing.
Makes no difference to me to take a x86 laptop with amithlon and TVOUT or a fpga "One chip Amiga".


FPGA is NOT emulation. An emulator gets one machine to imitate another. An FPGA, on the other hand is a big set of gates that can be configured into different circuits. It is not a CPU. You can "program" an FPGA's configuration with different circuits, meaning that you could implement a CPU on it, or some other logic machine. Just because it's not gate-for-gate identical to the original, doesn't make it an emulation. AMD's CPUs aren't gate-for-gate identical to Intel's, but no-one would call them "emulators of the x86 CPU" (which doesn't even make sense).

Minimig and other projects like it, implement an Amiga compatible chipset on an FPGA. You could take the same design and turn it into an ASIC, or even, make a fully-custom chip based on the design.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Coldfire - Binary Compatible
« Reply #1 on: January 31, 2008, 02:37:21 PM »
What I think may be confusing people is that the coldfire architecture is close enough to the 68k architecture that a compiler could generate a binary that runs on both. Gunnar von Boehn (a.k.a. BigGun) has already demonstrated this, IIRC. However, that doesn't mean that you can run any old 68k code on coldfire. You won't be able to take the Amiga ROMS and expect it to just run.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Coldfire - Binary Compatible
« Reply #2 on: January 31, 2008, 04:37:48 PM »
Quote

bloodline wrote:

Well... you are saying that a chip that can be programmed to imitate another chip is different to a peice of software that allows a chip to imitate another chip... while the approach is different they are conceptually the same thing.

Only one approach is cheap and easy to fix bugs... the other requires special hardware and bug fixing is a more involved process...


It's quite difficult to explain this clearly to people who don't know exactly what an FPGA is. People implementing circuits in an FPGA use some of the same tools that chip designers use to design fully custom chips (minus the IC transistor layout tools).

An FPGA has no predefined computer architecture; it is simply a huge array of logic gates with programmable interconnections. This is great, because it means that you can design and test computer circuits without having to manufacture a new chip every time you make a change.

It's the IC equivalent of having a huge prototyping board with all the discrete chips and wires required to implement any computer circuit you wish. If you wire up a circuit on a prototyping board that adds numbers together, you just built an adder; you didn't emulate it. Likewise, I could implement the same circuit on an FPGA. The only difference is that instead of manually plugging wires into a proto-board, I upload a bitfile to the FPGA that connects up the relevant wires between logic gates in the FPGA.

Let's take this one step further. Suppose now that I design a circuit that performs the same function as the Paula chip. It has the same registers, and performs the same task. I've just designed Paula compatible hardware.* I could now wire up logic gates on my proto-board (the original Amiga prototype was built out of discrete ICs), or create an FPGA bitfile and implement it on my FPGA. If I'm completely happy with it, I could call an ASIC company and pay them to transfer my Paula compatible circuit onto an ASIC, and have them manufactured in medium quantities. Equally possible would be for me to hand my design over to an IC designer and have that person design a fully-custom chip containing my Paula implementation.

Now let's look at an emulator. It's written in software for hardware with a predefined architecture. Via software instructions that are executed serially, you emulate the behaviour of all the hardware elements in a completely different machine. Unlike Dennis' Paula implementation on an FPGA, there are no actual Paula registers, and the machine has to execute several instructions to emulate what happens simultaneously in the real thing. You can't take this code and hand it to an ASIC or IC engineer and say "hey, build this circuit" because it's not a circuit at all, it's a set of instructions for a CPU that emulate the behaviour of a hardware circuit in software.

I hope that this clarifies it a bit. Just because an FPGA is reprogrammable doesn't mean that it's running software. You're implementing hardware circuits on it.

Hans


* note: it's Paula compatible, not an actual Paula chip, because it's not gate-for-gate equivalent.
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Coldfire - Binary Compatible
« Reply #3 on: January 31, 2008, 04:43:42 PM »
Quote

Crumb wrote:
@Hans

I don't care much if 68k binaries could be written, because 90% of amiga software won't be rewritten.


Nor do I care.

Quote

BTW Biggun demonstrated *NOTHING* because there's no AmigaOS that runs on Coldfire. He just spreaded his theories about recompiling your binaries and making them slower on 68k just to be compatible with a handful of accelerators that run at 266Mhz and that are *slower* than a pitiful and cheap Efika/Pegasos (that at least has native PPC binaries and also can run 68k code at decent speeds).


I believe that Elbox has a working prototype Coldfire card (they demonstrated it somewhere IIRC), so I'd expect that it's actually been tried and tested. It's not a theory. Whether it's faster or slower than emulation on 1GHz+ machines is irrelevant really.

I'm personally not a big fan of using Coldfire as the next generation Amiga, but someone else might get a kick out of making it happen. The decision was made to go PowerPC over a decade ago. That might even change to x86 at some point.

None of this changes the fact that you could produce binaries that run on both 68K and Coldfire if you wanted to.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Coldfire - Binary Compatible
« Reply #4 on: January 31, 2008, 06:06:31 PM »
Quote

bloodline wrote:
Yes, I'm well aware of FPGAs... I think they are great... but my point is that A PC is essentially functionally exactly the same as an Amiga.

It has a Keyboard and a Mouse, for input.... Video and Audio for output... and a diskdrive for storage. THe PC and the Amgia re functioanlly identical devices, they just work differently internally. But a piece of software, the emualtor, can make one device work from an (external point of view) identical internally...

If you see what I mean...


Sorry, I don't see what you mean. How does your point make an implementation of hardware in an FPGA an emulation? Whether it's an emulation or a clone depends on the internals not the external appearance.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Coldfire - Binary Compatible
« Reply #5 on: January 31, 2008, 06:42:43 PM »
@bloodline & hbarcellos

By that reasoning, an AMD CPU is an x86 emulator too. It's not identical to the original x86 chip, but it does the same thing. Multiple companies make different but compatible versions of the same thing all the time. That doesn't make them emulators.

We're fully agreed that a clone (be it in an FPGA or otherwise) is not the original. Where we differ is in the definition of emulation. I agree that the end goal is roughly the same. However, the approach is quite different. An emulator is one thing, an FPGA implementation is another.

This is why I call UAE an emulator, and the Minimig, an A500 clone. Neither are a genuine A500. To make things a little more complicated, the PIC micro on the Minimig that's connected to an SD-card slot is an Amiga floppy drive emulator, since there is no floppy drive at all, and it's making a file on the SD-card look like an Amiga floppy drive to the Minimig chipset.

BTW, has anyone thought of taking the floppy emulator on the Minimig and connecting it to their Amiga? That would mean no more searching for disks.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
 

Offline Hans_

Re: Coldfire - Binary Compatible
« Reply #6 on: February 01, 2008, 01:27:36 AM »
Quote

bloodline wrote:
Quote

Hans_ wrote:
@bloodline & hbarcellos

By that reasoning, an AMD CPU is an x86 emulator too. It's not identical to the original x86 chip, but it does the same thing. Multiple companies make different but compatible versions of the same thing all the time. That doesn't make them emulators.


But you can take that argument to a stupid level... A Transistor is just a valve emulator... a computer is just an abacus emulator...


My point exactly.

Quote

The only thing we disagree upon is the means... since we both want the same ends...


But it's the means that decides whether it's an emulator or a clone, not the end result.

Quote

I just don't see the difference between a "Field Programmable Gate Array" programmed to behave like a chip/set of chips, and a CPU running a program  to do the same :-)


I guess we'll have to leave it at that then. Given that one is a software emulation of hardware, and the other is a hardware design that's compatible with the original, I see them as very different. Moreover, if I were to take the MiniMig Verilog files and use them to synthesize an ASIC, would you still consider it an emulator? I've worked with both microcontrollers and FPGAs; they're very different.

Hans
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work