This is just a test demo of my DDR3 controller with 32 bit color 1080p display and a ellipse geometry drawing processor.
I have attached 2 demo files for to test in the .zip archive.
They are .sof programming files, so, all you have to do is:
Open the Altera programmer,
Select the DECA JTAG programmer,
Make sure the programmer is set to JTAG mode.
And add only 1 of the files and program.
There are 2 files, a good one and a lemon one.
The good one should generate a picture holding a 32 megabyte 4096x2160x32bit bitmap.
Switch 0 should enable/disable the drawing of ellipses. (Power-up with the ellipse draw disabled and see what the DDR3 ram's memory looks like un-initialized.)
Switch 1 should enable/disable the scrolling over the 4096x2160 bitmap on the 1080p output.
Button 0 should render random static into the bitmap.
Button 1 should render a colored test pattern into the bitmap.
Please inspect for any garbage around the left&right border carefully as it draws. I need to use a 30 foot HDMI cable because of my setup location and that cable leaves speckles throughout my picture. The output should be clean but I cannot tell for sure if there are buffer under/over-run bugs while drawing, but it does look perfect.
The lemon file should make a red-orange-green pattern. If so, I have a coding bug. If it draws the ellipses at half speed, then my coding is good, but, I have a lemon FPGA.
I tried re-compiling in Quartus 15.0, but, there it crashes right at the last 'assembler' step. (Besides compiling really slow compared to Quartus Prime.) I'm downloading Quartus 15.1 to see if it crashes.
If anyone is willing to wire up the RS232 for use with my RS232-Debugger code here:
https://www.eevblog.com/forum/fpga/verilog-rs232-uart-and-rs232-debugger-source-code-and-educational-tutorial/msg2801388/#msg2801388This is the wiring:
TXD out of the DECA board to PC is on pin GPIO0_D[1].
RXD into DECA board from PC is on pin GPIO0_D[3].
The contents on 'In0' at the bottom left of my debugger is of use to me, but not crucial.
Please let me know the results.
In the lemon file, the DDR3 is still working fine as the RS232-Debugger can read and write to it, but, the read-requests on the display port are being dropped or ignored and it should work fine. The bug is affecting my multi-port module, but all I did was run the section at 1/4 speed instead of half speed. Cycling the software reset in the RS232 debugger sometimes brings up a frame on the display, but it then dies instantly and yet it simulates properly. This is a fishy problem where multiple command FIFOs and selection priorities interact and there isn't an effective way to simulate the millions of cycles to generate the crash in Modelsim.
There are other weird sings where some compile builds fail to do anything just by changing a simple parameter or compiler option which should have no bearing on the functionality, so I am wondering what is going on.
It should take a few more days to find this bug, then I will release the full source code on a new thread here.
Link to patched V2 code:
https://www.eevblog.com/forum/fpga/arrow-deca-max-10-board-for-$37/msg3601248/#msg3601248