Project F

News: December 2022

Published · Updated

Happy New Year and welcome to the latest Project F news covering the end of 2022. This update is packed with maths, graphics and the usual smattering of bits and pieces.

Maths & Algorithms

Prototype Mandelbrot set demo using fixed-point multiplication

My introductory maths post, Numbers in Verilog, got a complete rewrite in November. The new version should be easier to understand while providing expanded coverage of arithmetic, signed numbers and expressions.

I published a first draft of a new guide to Verilog Vectors and Arrays in December. This draft includes tricks for slicing and sizing vectors, with coverage of endianess and arrays to follow.

A new version of Fixed-Point Numbers in Verilog is in the works, with improved coverage of multiplication and division. I’m testing a fixed-point implementation of the Mandelbrot set that shows off multiplication and division (see screenshot above).

FPGA Graphics

The final part of FPGA Graphics, Animated Shapes, got the fresh framebuffer treatment in October. If you’re looking to create animated bitmap graphics, this post should give you everything you need to get started.

I’m considering adding framebuffer support for iCE40 SPRAM so that iCEBreaker and friends can support double-buffered 320x180 in 16 colours [issue #133].

FPGA Graphics officially supports iCEBreaker and Arty A7, but now the designs are reasonably stable, I can think about porting them to other boards. I’m currently working on versions for the Nexys Video and ULX3S (with tristanitschner). Both these boards support FPGA TMDS output, so this is an excellent opportunity to review my old TMDS encoder.

If you want to merge version of FPGA Graphics for another board into the Project F repo, please open an issue on GitHub first! I’ll create a dedicated branch so we can review the design and make sure I can maintain it. Of course, you don’t have to merge your version into the Project F repo; tell me about your version, and I can link to it to help other people find it.

Demo Effects

FPGA Demo

Back in the spring, benjamin.computer and I created All You Need, an FPGA demo for Revision 2022. I have tidied up two of the effects and ported them to the Arty board:

As time permits, I’ll port the remaining effects, such as music and metaballs.

Bits and Pieces

Having a Mammoth Time 🦣

In 2023, I’ll post news and updates on Mastodon @WillFlux@mastodon.social, but no longer on Twitter.

I didn’t take this decision lightly. Despite Twitter’s many flaws, it’s where I’ve met many great FPGA and open-source hardware enthusiasts. But enough is enough; Twitter is no longer a place I wish to spend my time. For now, I will keep my Twitter account to avoid losing content and help people find me on Mastodon.

I got an enthusiastic response to my recommended FPGA sites post on Mastodon and Twitter at the end of December. I’ll be incorporating your suggestions into a new version soon.

Simple CDC

My clock/xd post on simple clock domain crossing (CDC) got an update in October. If you’re sending a pulse, such as a frame start signal, across clock domains, this approach works well. Stay tuned for more Verilog library posts in 2023.

Project F Discussion Forum

I’ve had a request [issue #118] to add a Project F discussion forum on GitHub. If you’re interested, please add a comment or upvote this feature request.

Other Projects

Tiny Tapeout

There were some impressive ASIC designs on Tiny Tapeout this autumn, including FPGAs!

Tiny Code Christmas

If you’re interested in the demoscene or fantasy consoles (TIC-80 and PICO-8), then I highly recommend Tiny Code Christmas. There are 12 fun challenges you can do at your own pace.

My design for day 2 running on TIC-80:

TCC Day 2

SystemTalk

When not blogging about FPGAs, I also blog about computer history with a current focus on 68K Macintosh. The most recent post is A Macintosh History 86.11, including the Radius Full Page Display and the fabulous Motorola 68040.

Thank You, Sponsors!

Thank you to my sponsors for supporting my work on Project F: Adrian Scripcă, David C. Norris, Eduard Silantyev, John W. Terrell, Juri Tsirihhov, ketmonkey, kromych, matt venn, Michael Doornbos, Paul Sajna, STjurny, and those who wish to remain anonymous.

If you like what I do, consider joining them and sponsoring me on GitHub. I love FPGAs and want to help more people discover and use them in their projects.

Check out the news archive for all the news.