Here are some musings which could relate to an FPU for a 6502 system. (We've discussed some FPU products
here, but I'm thinking of projects rather than products.)
Back when x86 first became popular, it offered two approaches to floating point hardware: Intel made the x87 devices which were initially like a coprocessor, taking instructions from the instruction stream and having a small register stack inside. Weitek made their own devices, initially a chip set and then integrated, which connected as a memory-mapped device, which was a much more time-efficient interface. They also had a large internal register file, and a command queue, so several stages of a computation could be in-flight while the CPU did something else. They lacked some things which Intel offered: an 80-bit internal format for extra accuracy, support for denormalised numbers, and transcendental functions.
The memory-mapping was a bit large for our purposes: a 64k block. That gives 16 address lines, together with (at least) 8 data lines, for each action. Apparently 6 of the address lines were used as a command, the rest as register specifiers.
In a 6502 system, it would be reasonable for an I/O device to occupy as much as 256 addresses but perhaps not more than that. So we'd communicate 16 bits for each write - 8 bits from the address bus and 8 from the databus.
Any ideas for a nice architecture?
Ref:
Weitek 3167 datasheet (pdf).
Overview of FPUs in x86 land:
coproc.txt.
Wikipedia on Weitek.
Attachment:
File comment: From 1988 datasheet at bitsavers
WTL 3167 FPU.png [ 103.77 KiB | Viewed 2336 times ]