Date: Wed, 22 Nov 2006 11:16:22 -0800
From: Vincent Slyngstad <vrs at msn.com>
Reply-To: "General Discussion: On-Topic and Off-Topic Posts"
<cctalk at classiccmp.org>
To: "General Discussion: On-Topic Posts Only" <cctech at classiccmp.org>
Subject: Re: Somewhat OT: FPGA Develpment Kits
From: "Dave McGuire" <mcguire at neurotica.com>
On Nov 21, 2006, at 6:46 PM, Vincent Slyngstad
wrote:
I do believe that just implementing an FPGA CPU
and hooking it straight
to your LCD and keyboard is essentially equivalent to running a software
emulator (only much slower).
I strongly disagree with this statement in two ways.
My first point of disagreement is this. Doing it in the FPGA, the
FPGA's gates and internal signal routing are configured to form the
arrangement of circuitry to implement a processor...in REAL HARDWARE.
What if someone is unfortunate enough to still be running Windows...So
they're running an emulator under Windows, and Windows blows up. Then the
emulated system ceases to exist. The performance of the emulated system
depends on the other stuff being run on the host system, so if you'rew
orking on software, that makes benchmarking or certain types of
performance optimization impossible...execution is nondeterministic.
I concede your point. My comment was directed at the essentially equivalent
compromises of the "user experience".
Now, if you implement a processor in an FPGA,
write an operating system
for that processor (possibly even a multitasking one), then write an
emulator to run under that...NOW they're equivalent.
My second point of disagreement is your statement that doing it in an
FPGA is "much slower". Why should this necessarily be the case? You may
not be able to clock the FPGA at multiple GHz, but you also don't have the
overheard of another operating system and the emulator itself, which is
considerable.
I believe a modern PC operating in the Ghz can emulate a PDP-8 much faster
than an FPGA clocked at, say, 50Mhz can. The software emulation overhead
should only be about 20X-30X.
I suppose if we include a lot of GUI stuff to emulate blinking lights and so
on, it will be a much closer contest, as the FPGA can do all that in
parallel.
Vince
If any real I/O needs to be done the FPGA will win by a factor of 10s to 100s
since there is no OS (or long latency PCI bus) in the way (Just try bit
banging a floppy interface with your emulated CPU...)
Peter Wallace