Hm. 40 MHz is pretty fast. I’ll make sure all 68030 cards are good up to 40 MHz bus clock, in case someone tries to apply an adapter to use it in an IIfx. I’ll also only use signals common to all 68030 machines, so any adapter should work. I really wanna do a multifunction NuBus video card instead though, with support for basically any monitor. Shouldn’t be too hard with a programmable PLL to multiply a slow clock to make the pixel clock for any display.
thetechknight was going in a good direction with the FPGA and 68000 soft core. I rejected that approach because none existed supporting '020 instructions. The coprocessor idea he was describing is good but if it's gonna have a fancy ARM system, why not just do it all on there.
And this is key to achieving the 50x speedup over Plus or SE or whatever I claimed I could do. When you run a core in an FPGA, you don't get a fancy cache system with a few Mbytes of L2 and tens of kbytes of L1 cache, which you get in an ARM SoC. The FPGA could probably only accommodate a small L1 cache, and then maybe you could add external L2 SRAM, but... that quickly becomes too complicated, and it doesn't work as well when the L2 cache isn't on-die. The ARM cores are already great at cache management and branch prediction and all that other stuff that a good processor must do. Combined with translating the M68k code into ARMv8-A instruction such that register-register operations don't touch memory of the ARM chip, that makes for a really fast emulation solution. Even if there is double or triple indirection involved in emulating a memory access or jump, the ARM processor is just so fast compared to anything you can make in an FPGA, so it doesn't matter.
The portable accelerator is hard in terms of getting it within the power budget. Maybe an ARM Cortex-M7 running an interpreter, with a bit of SDRAM and an FPGA accessible through the MCU's external bus interface would provide a small boost to a Portable. That would probably still exceed the power budget for the Portable's PDS, but only barely. Even the fastest Cortex-M7 available is only 400 MHz though, and they don't accommodate hundreds of megabytes of SDRAM, so the emulation would probably have to be strictly interpretive emulation, no translation, no fancy peripheral emulation, no USB, etc. But it would be possible, and cheap compared to what I'm doing. Slower though.
I understand what you’re saying about the schematic design. Relatively little time is spent doing schematic capture compared to board design, so as the hardware matures, I always find myself thinking about the circuit more in terms of the board than the schematic.
Your board is cool. I like the idea. But will it work electrically? The skew shouldn’t be that bad, but at 25 MHz and 5 V, I think your board may end up radiating a lot of radio emissions. All of your traces are perpendicular on the top and the bottom, so that’s good (reduces crosstalk), but you should try and consider how the return current flows. You wanna minimize the “loop area” of the entire trace by laying it next to or twisting it with ground. This is why I was saying earlier about having a solid GND plane underneath each trace. It helps a lot as you exceed 15 or 20 MHz. Indeed, it may be useful to you to pair two of the etchable two-layer boards together, with the signal traces on the outside, and a solid GND plane on the inside. You could pair GND and a power plane together too if you put some kind of dielectric in between. The thinner the better, since then you turn the board itself into a capacitor, which is helpful for signal integrity. I’d also stick some capacitors on your board between power and GND.
More progress on SE card: