News: August 2021
Project F news is your monthly bowl of FPGA goodness with tasty tips and links from other developers mixed in. August saw my first circle drawn, new graphics designs for iCEBreaker, improved build instructions, and the first draft of a new post covering animated graphics and double buffering.
For more frequent updates on new blog posts and FPGA designs, follow @WillFlux@mastodon.social and @WillGreen (GitHub). You can also find me on 1BitSquared Discord.
Read the September 2021 news or see the news archive.
Animated Shapes
The final part of the FPGA Graphics series made a draft appearance this month: Animated Shapes.
We’ve already seen animation with Hardware Sprites, but double buffering gives us maximum creative freedom with fast, tear-free animation. Doubling our memory requirement is painful, but having the freedom to draw smoothly without tearing is liberating. I am still working on the iCEBreaker version with SPRAM and will add some more demos in September.
If you create your own design with the framebuffer, let me know, and I’ll share it on the blog.
New iCEBreaker Designs
iCEBreaker is now supported by 320x180 16-colour designs from Lines and Triangles and 2D Shapes. A framebuffer requires one of the four SPRAM blocks, giving you accelerated 2D drawing while leaving plenty of memory for software.
Before you dismiss 320x180 as too low-res, consider the Amiga demo Eon by TBL is 320x180, Doom is 320x200, and Neo Turf Masters is 304x224 (and my word is it pretty).
You can see the iCEBreaker rendering concentric circles at 320x180 in the photo below.
Concentric Circles
This month, I added a circle drawing module: it requires no multiplication and easily meets 25 MHz timing on iCE40UP. It will be joined by a filled version soon. Read more in 2D Shapes and find the design in the Verilog library on GitHub: draw_circle.sv.
I looked into implementing ellipses in hardware, but they’re significantly more logic intensive, with multiplication and 48-bit vectors required (assuming 16-bit coordinates). You can always squash and rotate a circle instead.
Improved Build Instructions
One of the big barriers to new FPGA developers is building and learning from other projects. Too often, you get a heap of modules, makefiles, and scripts with no explanation of what’s what.
I want to lead by example, so I’ve improved build instructions in the Project F git repo. For example, check out the latest version of the Hardware Sprites README.
Interesting Links
FPGA and RISC-V links that caught my eye:
- Soldering a BGA FPGA with Ben Blundell
- Using PCIe in Xilinx 7 Series
- Raytracing with your RISC-V core (GitHub)
- Writing the SPI flash of the miniSpartan3 FPGA board
- Rob Shelton recreates Out Run in Silice (Twitter)
- ICEd ESPresso: a tiny, WiFi-enabled FPGA board (Twitter)
For more great links, try Recommended FPGA Sites.
And Finally: Tech That Didn’t Take Off
- IBM 5150T
- AppleVision Display L
- Sun SPARCpad 5 and SPARCphone
- OS/2 Warp Cartridge
- Motorola Multichip 68040
All from the Twitter account of Dana Sibera.
Read the September 2021 news or see the news archive.
Sponsor Project F
If you like what I do, consider sponsoring me on GitHub.
I use contributions to spend more time creating open-source FPGA designs and tutorials.