Determinism. Unless you run your software simulator bare-metal - which
most aren't - cycle accuracy is always a race. Before you say modern
processors are 100,000 times faster than emulated ones - so just spin
wait until the next virtual time tick, that is always a moving ratio or
opportunity for a context switch right at the threshold. I might want to
emulate a vintage i7 on an i19 one day.
In my mind, take the best of both worlds. Emulate at an RTL level to
produce as accurate of a functional model possible. Then simulate the
design in things like Verilator to create a software runable emulation.
Not to mention it's a deeper emersion to recreate the how rather than
just the result of an instruction.
-Alan
On 2015-07-14 13:17, Chuck Guzis wrote:
I'm missing something in this discussion, I
think.
HDL's (take your pick) are just programming languages like FORTRAN or C with
different constraints. What's the point of going to all the trouble of doing an FPGA
implementation of a slow old architecture, when pretty much the same result could be
obtained by running a software emulator? Neither accurately reflects the details of the
real thing--and there will always be the aspect of missing peripherals.
Perhaps the worst aspect of using FPGA is that this is a rapidly moving field, so that
the part you used to do your implementation 10 years ago will no longer be available.
I've done a few designs using 5V CPLDs (XC95xx series) not *that* long ago. Now they
themselves are quaint examples of obsolete hardware. You can't win.
You can move software-only simulators quite easily, but I'm not as sanguine about
FPGA designs.
And you still don't have the peripherals. I suppose one could emulate a Univac Solid
State machine in FPGA, but what would one do about the all-important drum coupled to the
card reader and printer. Has anyone rolled out a design for a DIY 1403 printer?
I've run the Cyber emulator as well as various SIMH emulators from time to time, but
it's just not the same as the real thing--it's not even remotely the same.
--Chuck