Cyprian wrote: ↑Mon May 27, 2019 12:02 pm
should be memory clocked at 64MHz for 640x400x16 progresive?
Yeah, Troed did a table of all this somewhere in his tread. Of course it needs the bandwidth to RAM to output the data fast enough, but also needs a shifter capable of using the bandwidth.
AFAIK, if the pixel clock on the shifter stays the same, then we are locked to 640px horizontal (not including overscan) . Really we don't want to increase that so much as the vertical, I mean 1024x200x4 would be a bit silly for example.
So we basically go from 320x200x16 to 640x200x16 which is double bandwidth needed. So 640x200x16 would need double bandwidth again. At these points the shifter pixel clock is still running at stock speeds.
Or we put the bandwidth into colours and have 320x200x256 for example. Of course if we had double bandwidth again, we could have 640x200x256 for example.
In terms of "mono" 640x400x2, double bandwidth would be 640x400x4 , or x4 bandwidth 640x400x16.. Of course this is why we really need a good shifter to allow all these funky modes.. but we are a long way off x4 bandwidth (32Mhz system) as we only just started with double bandwidth (16mhz system).
Long long long term idea.. if we had a 32bit system and a shifter to match, we could transfer the data double speed again ( in effect a 64MHz system). In that case 640x400x256 would be possible.. but its only a dream of getting that far with the project.
There may be other 16bit options of just running RAM/MMU at 100MHz with the shifter, and using a 50MHz CPU.. but would need a lot of fast RAM to keep up as well. But I think going to 32bit after 50MHz is probably a better direction to go in.. but I think it will be unlikely the project will ever get that far.