On 12/9/2021 11:06 PM, Guy Sotomayor via cctalk wrote:

On 12/9/21 8:15 PM, Jay Jaeger via cctalk wrote:

One could perhaps emulate the RS64 data stream using a fast-enough micro, ala the MFM emulator.

Why does everyone seem to want to emulate HW like this with a micro when a reasonable FPGA implementation with some external FRAM would do the job?


1) Because not everyone has that kind of design experience and capability (I do, but that is beside the point). In such a case, suggesting a FPGA might cause those readers to just skip it without further thought, whereas suggesting a micro is less likely to have that effect on someone who *does* have the design experience.

2) Because the tooling on FPGAs is sometimes a pain and the parts themselves are always in flux, and the updated tools often don't support the older parts. Over the last 20 years I have gone through at least 3 different FPGA development boards and toolsets, where as my original Arduino is just as useful as ever.

3) Because a highly flexible FPGA development board costs a lot more than a micro, and micros would be a lot cheaper on a stand-alone PCB than an FPGA part (or an FPGA through-hold carrier for those who are not up to doing something like an FPGA part on a PCB.)

4)  Because a micro form factor is smaller than an FPGA development board.

5) For someone well versed in software but not as well versed in design (though enough that they could still do what you suggest), doing the software might only take a couple of days for something like a 64Kw disk (if it isn't too fast), and easier to debug/fix/enhance as well.

6) Because it was just a *suggestion* that one might emulate the disk itself in hardware (see also point 1).

On the other hand, speed kills, and some disks are just too fast for a micro alone to do.

The SMD/ESDI emulator that I've been working on has to "brute force" the emulation because of BW concerns.  That is, it has to read the entire emulated disk image into DRAM because:

1. You need at least a track's worth of buffering to send/receive the
    data though the data interface (serial)
2. You don't have enough time to transfer tracks in/out of the track
    buffer to flash (or what ever) to meet the head switch times
3. You don't have enough time to transfer whole cylinders in/out of the
    cylinder buffer to flash (or what ever) to have reasonable
    track-to-track seek times

So it will require a micro, but that's mainly to manage what's going in/out of the (large) DRAM back to flash (it reads the entire emulated disk image into DRAM during boot).  All of the actual commands and data movement across the interface are all done by an FPGA.


Cool. Would love an ESDI emulator for my Apollo DN3000 and SMD emulation for my VAXen and PDP-11/24.

Reply via email to