This is absolutely wild. Rendering graphics with just combinational logic and no frame buffer is the kind of constraint that breeds creativity.
The HAKMEM sine/cosine generator is such an elegant choice - it's numerically stable in fixed-point and requires only adds and bit-shifts. Perfect for hardware. I used a similar approach once for generating test patterns in an FPGA.
The fact that you can iterate on this in simulation, then deploy to actual silicon via Tiny Tapeout for $150 is honestly mind-blowing. We're living in the future.
> The fact that you can iterate on this in simulation, then deploy to actual silicon via Tiny Tapeout for $150 is honestly mind-blowing. We're living in the future.
... For that matter, apparently the microcontroller in the dev kit is a https://en.wikipedia.org/wiki/RP2040 , which seems like a beast in comparison. And it's still available for less than $1 USD on PiShop.
As a computer science guy who interlops in computer engineering i really want to find time to build something cool like this and tapeout. The retro architectures for rendering are simple but fun! I love the project
I recommend getting started like the author did: simulation first, then FPGA. Honestly FPGA will take you very far. I always get a kick out of being able to design my own SoC. "Hmmm I need 9 separate I2C ports... Ok, copy block, paste paste paste..." Or if you have an operation in software that's taking forever you can write an accelerator for it
It’s amazing and wonderful to see the Internet support these tiny cliques of interest. Having everybody connected leads to homogenization of culture in some ways, but it also supports these couple dozen (?) people around the world finding each other for this amazing little competition.
I was curious about the long-term stability of the cited HAKMEM sin/cos generator. I found an overview here: https://news.ycombinator.com/item?id=3111501 (EDIT: I'm still not sure about stability, apparently it is stable in exact arithmetic under certain conditions.) Coincidentally it is related to the Verlet integration video I posted last week: https://news.ycombinator.com/item?id=46253592
Yeah, it is exact in this specific circumstance. But yes, it's exactly the same trick; I also enjoyed that video in my Youtube recommender feed last week!
I thought this was pretty cool but the first video didn't play. All this write up and I really just want to see the damn demo in action first! (Edit: reloaded the page and it worked. I still would like to see it on rela hardware!)
>Pure Silicon Demo Coding: No CPU, No Memory, Just 4k Gates
ok, but silicon is doped so it's slightly impure, and CPUs are also silicon and memory is also silicon.
you actually meant "4K gates, no clock, no synchronization, no timing" and maybe a little "not exactly sure when the output is rea... is rea... is ready"
yoan9224|2 months ago
The HAKMEM sine/cosine generator is such an elegant choice - it's numerically stable in fixed-point and requires only adds and bit-shifts. Perfect for hardware. I used a similar approach once for generating test patterns in an FPGA.
The fact that you can iterate on this in simulation, then deploy to actual silicon via Tiny Tapeout for $150 is honestly mind-blowing. We're living in the future.
tails4e|2 months ago
zahlman|2 months ago
It's really cool but it doesn't seem practical at all. They aren't setting up print runs, just one-offs (https://tinytapeout.com/faq/#how-many-chips-will-i-receive-c...) and $150 could get you... many orders of magnitude more power than that.
... For that matter, apparently the microcontroller in the dev kit is a https://en.wikipedia.org/wiki/RP2040 , which seems like a beast in comparison. And it's still available for less than $1 USD on PiShop.
xphos|2 months ago
Neywiny|2 months ago
oofbey|2 months ago
RossBencina|2 months ago
a1k0n|2 months ago
intalentive|2 months ago
glimshe|2 months ago
amelius|2 months ago
Joel_Mckay|2 months ago
https://en.wikipedia.org/wiki/Metastability
https://en.wikipedia.org/wiki/Clock_domain_crossing
unknown|2 months ago
[deleted]
xecaz|2 months ago
startupsfail|2 months ago
> 1024x32 Commercial SRAM > CF_SRAM_1024x32 > Commercial SRAM: 1024 words x > 32 bits (4KB) with Wishbone Bus interface > Area: 0.17mm² > GPIOs: 0 > License: Commercial - $2500 per project
Archit3ch|2 months ago
Taniwha|2 months ago
Joel_Mckay|2 months ago
The project has a narrow scope of use-cases. =3
idiotsecant|2 months ago
layer8|2 months ago
peddling-brink|2 months ago
There are many bad things about LLMs, but a benign shift in popular language usage isn't one of them.
fsckboy|2 months ago
anthomtb|2 months ago
x=CPU y=Memory Z=4k gates
BoredPositron|2 months ago
datameta|2 months ago
Oh shit, this prompted me to check and turns out TinyTapeout is back to life! https://tinytapeout.com/
openinfrared|2 months ago
Uptrenda|2 months ago
[deleted]
Dwedit|2 months ago
hackernudes|2 months ago
If you have a ROM, it's not "no memory".
Needlessly pedantic!
I thought this was pretty cool but the first video didn't play. All this write up and I really just want to see the damn demo in action first! (Edit: reloaded the page and it worked. I still would like to see it on rela hardware!)
jonathrg|2 months ago
layer8|2 months ago
fsckboy|2 months ago
ok, but silicon is doped so it's slightly impure, and CPUs are also silicon and memory is also silicon.
you actually meant "4K gates, no clock, no synchronization, no timing" and maybe a little "not exactly sure when the output is rea... is rea... is ready"
chrisjj|2 months ago