Tang 9K Block SRAM Write Corruption
Has anybody had any success in creating a large framebuffer with inferred Block SRAM?
If I load a .hex file into the RAM, that data is written (and read) from the inferred block RAM perfectly. But when I try to dynamically write to the RAM, I am not getting consistent writes (see the stray pixels on the attached picture).
You'll notice random pixels which typically seem to occur when 0 is being written to the RAM (within the black lines of the pattern).
The attached design does the following:
- Initialises the RAM with a .hex file
- Fills part of the RAM with a 7, 0, 7, 0 ... pattern which corresponds to yellow-black pixels in my framebuffer.
- Enables reading of the RAM once writing has been completed (this proves I do not have reads and writes at the same time)
I have tried lengthening the duration that the write enable signal remains high, double-registering the address, data and write enable signals.
No matter what I have tried, I cannot get my RAM writing to work properly. I have confirmed the same behaviour on a second Tang Nano 9K also.
Can somebody please help? I'll attach my design for reference.
I have the same issue with explicit SP RAM (64k x 4bits).