Shifter LOAD behaviour
Posted: 06 May 2025 12:27
Me again!
I've been going through the old shifter threads to try to get a bit of a handle on how the actual job of pushing screen data to the shifter works. I'm hoping to actually use my design faux pas (listening to the wrong data bus) to my favour, but it's not working for me just yet.
As I understand it, when LOAD is asserted a word of data is loaded into the shifter (specifically the data will be valid at the deassertion edge) and, for ST Low say, 80 of these loads occur per raster line.
Now, knowing when VSYNC occurs (even though it's not on the shifter), can one infer the offset from the start of screen of each of these words?
My approach has been:
But this results in a framebuffer copy that's jumping around all over the place -- although it's recognisably an ST's framebuffer.
Have I missed something obvious?
BW
I've been going through the old shifter threads to try to get a bit of a handle on how the actual job of pushing screen data to the shifter works. I'm hoping to actually use my design faux pas (listening to the wrong data bus) to my favour, but it's not working for me just yet.
As I understand it, when LOAD is asserted a word of data is loaded into the shifter (specifically the data will be valid at the deassertion edge) and, for ST Low say, 80 of these loads occur per raster line.
Now, knowing when VSYNC occurs (even though it's not on the shifter), can one infer the offset from the start of screen of each of these words?
My approach has been:
Code: Select all
offset = 0
loop {
if( negedge VSYNC )
offset = 0
else if( posedge LOAD ) {
screendata[offset] = D[15:0]
offset += 2
}
}
Have I missed something obvious?
BW