Okay, it seems there was a fourth option for why it wasn't working... blind idiocy... In my defence, it was 1am when I was playing with this ... but I'd been running the 'nios2-configure-sof' command and it was picking up the 'xxx.sof' file, not the 'xxx_time_limited.sof' file...
When I removed the xxx.sof file (with some prejudice ...) it all seems to work well - at least if I run at <= 100 MHz. I can't get the SDRAM to go higher than that, even if Quartus says fMax is 144.11MHz, even if I perturb the sdram-clock delay around a median of -3ns.
Anyway, now I'm getting:
--- Quote Start ---
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 38MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 38MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 39MB/s.
Test complete with a throughput of 38MB/s.
Test complete with a throughput of 39MB/s.
--- Quote End ---
... which is roughly 20% of the theoretical bandwidth of the SDRAM. I've noticed you saying that you've seen almost 100% utilization previously, so I presume there are things I can do to tweak that to make it better. Presumably the fifo interface to the real VGA controller (rather than this test) would help matters as well.
So, now I have a working modular SGDMA system on the DE0, I can start to try getting the VGA core to interface to it :) The one in the Neek is way more general than I need - the DE0 only has 4 bits each for R,G,B so I'll be adopting a standard colour definition of 16 bits, (4 each for R,G,B, 2 for alpha, 2 for depth) which precludes the need for re-sampling, colour conversion, etc.
Once that is working, I can start to implement the Blitter/GPU side of things, and it starts to get really interesting :)
Thanks for all the help :) Oh, and it may not be a great implementation (the .sdc file is basic ...) but if you want the DE0 project to go alongside the Neek one, you're welcome to it :)
Simon