Teaching Verilog
Video Pipelines may be the best way to teach Verilog.
It is fun to see things move on the screen. More importantly debugging FPGAs is often difficult, but if you can see the generated image, the bug is often quite obvious. If the refresh rate is too fast, you can use the $5 DVI to USB Dongle to capture the video stream on the desktop, record it, play it back slowly, zoom in on the pixels, and do calculations in Python on the image to ensure that it is correct.
The first thing that you need is a graphical Verilog simulator to debug the Verilog designs before synthesis. Then you need boards. You could use the low cost Gowin boards, but I think you are better off using the IcePi Zero board; it has access to the whole Raspberry Pi ecosystem.
Once you have the display working, all kinds of graphics can be generated. Moving squares, swirls, flashing lights and anything else you can image. That is lots of fun.
The. low end FPGA boards do not support MIPI, so the next step is to connect a camera using DVP, or you can use a $10 -$15 Raspberry Pi zero to bridge from propritary mipi to DVP.
Once the basic camera -> DVI pipeline is working, there are lots of possible simple projects. Input two cameras, and switch between them. Display on two monitors, and switch between them. Split the two cameras on the display. Fade from one camera to the other. Generate a grey scale image. Change the colors, like you are on drugs. Shake the image, like it is in an earthquake. Memory permitting you may be able to tilt the image, particularly if it is a grey scale image. Distort the video. Here are a list of more traditional video processes which can be applied to video.
Built with the Forest WIki.
User contributed content is licensed under a
Creative Commons CC By 4.0 License.