In article <
6d32f8c2-9de2-49f2...@googlegroups.com>,
As for what to shoot for: it will not be easy to make an FPGA processor
which is faster than software emulation. Software can emulate a 65816
at an effective speed of 1GHz already, which is actually much faster
than the speed of a real 65816 running at 1GHz. This works out to about
300 million instructions per second (since 65816 instruction average a
little over 3 clocks each). FPGAs at reasonable prices are basically
limited to around 300-350MHz clock speeds. A complex FPGA design which
executed one 65816 instruction every clock cycle would just about match
the speed of emulation on today's CPUs. But since accessing all memory
couldn't sustain that 350MHz speed, it's effective rate will be lower
(think caches and cache misses).
So if not the fastest experience, what do you want?
Theorizing about CPU designs can be fun, but a 65832 has a lot of
headwinds against it. A lot of software is needed to get anywhere
(assemblers, compilers, disassemblers, etc. etc.). There are many ways
to add 32-bit support, so there are a lot of choices to be made, where
easy would be in direct violation of making it run fast. To have any
kind of speed, it will need to run one instruction per cycle (or more!),
which means a new mode (since 6502/65816 compatibility needs to keep the
byte fetches). One approach is WDM is a prefix for existing
instructions, and changes how they work--WDM STA could always write 32
bits, for example, and WDM BNE could use 32-bit (or 16-bit)
displacements. But what should WDM CLC do? This is where new
operations can be added. The 65816 makes some mistakes (like SEP #$20;
STA; REP #$30 to do a store of one byte), which would be nice to fix in
some way. Another approach is WDM REP #$30 enters 32-bit mode, and then
you just widen all the existing instructions to work on 32-bit data.
But this can be harder to make fast. So, if you create a new
instruction set, then you've got write a lot of software to support this
(compilers, assemblers), plus then write software which takes advantage
of it. I think that's what the previous poster was saying: if WDM was a
switch to an ARM instruction set, then you get a whole lot of support
for the software needed.
Kent