TheZoq2's Avatar

TheZoq2

@thezoq2.bsky.social

Developing http://spade-lang.org and other fun stuff in Rust. PhD student at Linköping University Usually at https://mastodon.social/@thezoq2

196 Followers  |  54 Following  |  71 Posts  |  Joined: 21.09.2023  |  1.9188

Latest posts by thezoq2.bsky.social on Bluesky

Post image

Want to help build a crowdsourced microcontroller?

You're invited to design peripherals (UARTs, timers, synths, etc.) for a @riscv.org.web.brid.gy chip that will be fabbed for real!

Take part for free!

tinytapeout.com/competitions...

25.07.2025 10:57 — 👍 55    🔁 34    💬 2    📌 3

oh no! I'm so sorry you have to go through that

26.07.2025 08:52 — 👍 1    🔁 0    💬 0    📌 0
Preview
Surfer — An Extensible Waveform Viewer The waveform viewer is one of the most important tools in a hardware engineer’s toolbox. It is the main interface used to track down design bugs found by simulation or formal verification. In th...

Our CAV paper on Surfer is now available online doi.org/10.1007/978-...

In it, we talk about the user facing stuff like extensible translators, how Surfer is designed to be extensible and embeddable, and we describe our waveform parsing library - Wellen.

24.07.2025 09:11 — 👍 3    🔁 2    💬 0    📌 0

Post a meme made by you

05.07.2025 22:18 — 👍 11    🔁 1    💬 0    📌 0

Nice! The N is indeed inferred from the coeff length

06.07.2025 07:50 — 👍 2    🔁 0    💬 0    📌 0

[x] I'm in this picture and I don't like it

03.07.2025 09:27 — 👍 4    🔁 0    💬 0    📌 0

That's incredible, congratulations!

02.07.2025 09:06 — 👍 1    🔁 0    💬 0    📌 0
Post image

After 2 skipped releases due to me finishing my thesis, it is time for Spade 0.14.0 🎉

This brings long awaited lambda functions into the language, new standard library functions that use them, and a much improved LSP

Release blog post: blog.spade-lang.org/v0-14-0/

26.06.2025 13:16 — 👍 9    🔁 2    💬 1    📌 1

I'm not aware of any attempts, wellen couldn't do it out of the box, but it handles all the parsing so it should be simple to write a diff tool based on it

Perhaps with one caveat that wellen afaik is optimized for random access while diffing probably wants linear access

20.06.2025 09:11 — 👍 0    🔁 0    💬 0    📌 0
I recently submitted my PhD thesis, and while waiting for the physical copies to get printed I thought I'd write about something you (hopefully) wouldn't notice when reading it. I wrote it in Typst, not LaTeX. In this post I will talk a bit about what went well and what didn't.

Something you may hopefully did not notice about my thesis is that the whole thing was written in @typst.app

I wrote a few words about why, what I liked, and what I didn't like about it for such a big document

fransskarman.com/phd_thesis_i...

TL;DR 8/10, would recommend

13.06.2025 16:40 — 👍 19    🔁 3    💬 0    📌 0
Post image

There it is 👀

10.06.2025 21:10 — 👍 5    🔁 1    💬 0    📌 0
Post image

My thesis is now published online! 🎉

urn.kb.se/resolve?urn=...

03.06.2025 12:23 — 👍 24    🔁 9    💬 3    📌 0

Yes, if yosys and friends didn't exist I probably wouldn't have done any HW side projects, so i'd never have started Spade or Surfer

04.06.2025 15:47 — 👍 4    🔁 1    💬 0    📌 0

Thanks! I think hardware development is really being held back by its awful tooling so I'm happy to be able to address a small chunk of that.

After my first FPGA course I remember saying "This was super fun, but with the tooling and languages, there is no way I'm ever doing this again"

03.06.2025 13:38 — 👍 3    🔁 0    💬 1    📌 0
Post image

My thesis is now published online! 🎉

urn.kb.se/resolve?urn=...

03.06.2025 12:23 — 👍 24    🔁 9    💬 3    📌 0

I’d like to formally propose that academic journals (specifically those in bioinformatics and Cs, but more generally) begin accepting manuscripts prepared with @typst.app. I mean not only for initial submission (where PDF is often sufficient), but for submission of accepted manuscripts as well!

28.05.2025 14:39 — 👍 10    🔁 4    💬 2    📌 0
Chat with an article save 50% of your literature research time by asking questions to an article.

Chat with an article save 50% of your literature research time by asking questions to an article.

A year ago on a video I said science direct was trash but look at it nowwww... AI garbage. Why read an article??? Why not just let this algorithm spit garbage at you instead? Research!

21.05.2025 17:34 — 👍 271    🔁 19    💬 11    📌 2
Preview
crates.io: Rust Package Registry

I'm not sure if this is what you're after at all, but I wrote a little thing for codegen in the Spade compiler here crates.io/crates/nesty

It mostly solves the issue of wanting properly indented code blocks without effort but is admittedly pretty ugly

20.05.2025 07:20 — 👍 1    🔁 0    💬 1    📌 0

I had to rebase a branch in a non-jj repo a few days ago, took me like 30 seconds to remember how to do it. I only switched a few months ago 😅

02.05.2025 13:54 — 👍 4    🔁 0    💬 0    📌 0

Oh that looks like a very useful set of IO

23.04.2025 14:59 — 👍 1    🔁 0    💬 0    📌 0

This seems like really solid advice to me!

18.04.2025 20:32 — 👍 1    🔁 0    💬 1    📌 0
Post image

I talked a bit more about it on mastodon.social/@thezoq2/114... but here is a picture of the circuit and the schematic git.sr.ht/~acqrel/anal...

(Thought he schematic has some issues so it probably shouldn't be built, but can be used as a reference for how things work)

18.04.2025 17:43 — 👍 2    🔁 0    💬 0    📌 0
Video thumbnail

Me and a friend (Well mostly my friend, she did most of the design work) built a fully analog flappy bird last weekend

No digital logic, just ~30 op amps and 70-80 resistors, a bunch of capacitors and a few analog switches. All assembled during a 48 hour game jam

11.04.2025 17:44 — 👍 43    🔁 11    💬 3    📌 0

Do you love Rust, Typst, and Open Source? You may have found your dream job. Typst is looking for a Rust software engineer to work on the Typst compiler. Join us in Berlin or remotely anywhere from Germany or France. Learn more and apply: typst.app/jobs/

01.04.2025 16:21 — 👍 46    🔁 7    💬 4    📌 1
LATTE ’25

Oh, and we have a cozy little matrix chat for the community over at matrix.to#/#latte-chat.... It has been pretty inactive but we're hoping to make it a persistent place for the community to hang out, so feel free to talk about anything vaguely related to the LATTE topic!

28.03.2025 15:55 — 👍 2    🔁 0    💬 0    📌 0
LATTE ’25

On Sunday we're hosting LATTE ☕, our workshop on Languages and Tools for Accelerator design! We have 15 super cool papers and plenty of time for discussion!

You can attend virtually via zoom or in person with #asplos in Rotterdam capra.cs.cornell.edu/latte25/

28.03.2025 15:53 — 👍 9    🔁 4    💬 1    📌 0
Post image

Still super happy that the code for this is primarily just stream transformations

24.03.2025 17:34 — 👍 4    🔁 0    💬 1    📌 0
Video thumbnail

Oh hell yes, working ARP response + ICMP ping request/replies on my #fpga!

24.03.2025 17:33 — 👍 5    🔁 0    💬 1    📌 0

Also very satisfying that Spade is now expressive enough to easily do this, and I was able to refactor my 6 months old quite messy code into a better structure without breaking anything by just following the type system.

22.03.2025 12:06 — 👍 2    🔁 0    💬 0    📌 0
Spade code which parses ARP packets and generates replies, generates UDP packets, and joins them all to send to the network port

Spade code which parses ARP packets and generates replies, generates UDP packets, and joins them all to send to the network port

A short wireshark trace showing 172.30.0.0 asking for who has 172.30.0.1, to which another device (my FPGA in this case) replies with its own MAC address. The computer then sends some ICMP ping packets

A short wireshark trace showing 172.30.0.0 asking for who has 172.30.0.1, to which another device (my FPGA in this case) replies with its own MAC address. The computer then sends some ICMP ping packets

My ARP impl in Spade now works, my computer can ask who has the IP address of the #FPGA, and it replies correctly :)

Still incredibly pleased with this stream based network packet API. It makes packet transformation super easy, and nicely decouples "fmax buffers" and fifos from behaviour

22.03.2025 12:05 — 👍 6    🔁 1    💬 1    📌 0

@thezoq2 is following 20 prominent accounts