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