Author Topic: Alchitry CU (Lattice iCE40HX8K CB132) 3D GPU example  (Read 1021 times)

0 Members and 1 Guest are viewing this topic.

Offline trossinTopic starter

  • Newbie
  • Posts: 9
  • Country: us
    • Demoboy
Alchitry CU (Lattice iCE40HX8K CB132) 3D GPU example
« on: June 16, 2024, 10:41:22 pm »
I connected a Raspberry Pi Pico, some static RAM and a 320x240 TFT display to create an OpenGL 3D system.  I tried to make things parametrized so that the multipliers, dividers, span interpolator and triangle code can be used in different sized designs.  Making triangles mesh nicely requires interpolated snapping of start points for edge walkers and spans so there is more complexity.  The book " Advanced Animation and Rendering Techniques" that I got in the mid 1990s has the secrets of how to properly render triangles.

The lack of floating point hardware in the Pico and my not so clever OpenGL implementation are the performance limiters.  I seldom see the full led flash.  The design does have a 256 triangle input FIFO and 256 pixel output FIFO and I slightly overclock the FPGA at 40MHz (it times for around 36 to 38 MHz depending on the weather).  I also double overclock the Pico to run at 250 MHz instead of the default 125 MHz.  Word on the street is that it can do nearly 350 MHz for most folks.

Details with Verilog and test benches can be found here (I use Icarus and my own VCD waveform viewer that can be found on my tools page):

Video Here:
The following users thanked this post: iMo, EEexpert, xvr

Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo