🌗 使用現代 RTL 工具構建 FPGA 版 3dfx Voodoo
➤ 從硬體設計到精準還原:重現 90 年代圖形渲染的神話
https://noquiche.fyi/voodoo
本文記錄了作者如何利用現代硬體描述語言(HDL)工具,成功在 FPGA 上重新實現經典的 3dfx Voodoo 1 顯示晶片。與現代可程式化 GPU 不同,Voodoo 依靠大量的固定功能硬體來處理繁雜的圖形渲染任務,如紋理採樣、深度測試與模糊處理。作者指出,這項工程最困難的部分在於精準還原硬體行為,特別是解決管線(Pipeline)中的暫存器寫入同步問題。透過 SpinalHDL 及其 `RegIf` 抽象層,作者將暫存器的複雜語意封裝在單一程式碼區塊中,有效管理了管線狀態的一致性,並實現了更高效的除錯流程。
+ 這種將暫存器語意直接寫入硬體描述層的做法太聰明瞭!以前寫 Verilog 時,這些同步邏輯總是散落在各處,導致維護起來像惡夢一樣。
+ 很有啟發性。我一直以為 Voodoo 只是簡單的加速器,沒想
#FPGA #硬體設計 #3dfx Voodoo #SpinalHDL #數位電路設計
Building an FPGA 3dfx Voodoo with Modern RTL Tools

Long overdue blog post!

“But what if every button is also a screen?” That’s the question that started a multi-year project to build a custom electronic music production device, the SoundSlab. One glorious day it will be part sequencer, part sampler, part synthesizer, and part slab. Today it’s a never-ending hobby project…

https://craigjb.com/2026/01/10/soundslab-beginning/

#electronics #fpga #cnc #3dprinting #spinalhdl #Synth

SoundSlab: How it Started

Adventures in hardware hacking, low-level software, FPGAs, and more!

craigjb.com

It’s a relatively simple example for the SpinalHDL library I've been working on: spiny.

spinal/Blinky.scala defines the SoC, super short.

That definition auto-generates a SVD file, which is then fed to svd2rust to create a peripheral access crate (PAC). That gives nice Rusty strucs and methods for accessing all the registers. The rust firmware using it is in fw/src/main.rs.

https://github.com/craigjb/spiny/tree/main/examples/blinky

#fpga #rust #spinalhdl

spiny/examples/blinky at main · craigjb/spiny

Tools for SpinalHDL, with some Rust. Contribute to craigjb/spiny development by creating an account on GitHub.

GitHub

I quite like ethernet on FPGAs. It's not that hard to implement, at least this simple case, and a cheap RGMII PHY gives you a gigabit connection with just some ODDRs and IDDRs. There might be a lot more ethernet in my future designs…

#fpga #rust #spinalhdl

It's funny that we get so excited for some LEDs to turn on… but these LEDs mean a lot!

This is my first time lighting up LEDs by sending an ethernet packet to my soft SoC. All the SpinalHDL, auto SVD generation, auto Rust PAC generation, firmware, and timing constraints worked.

I've done a bunch of FPGA stuff before, even implementing my own HDMI RX in SpinalHDL without any vendor IP or wrappers on GTP transceivers. But, I've never gotten around to ethernet before now.

#fpga #rust #spinalhdl

Разработка DIY компьютера на базе FPGA

Желание поиграть в проектирование собственного процессора обычно приводит к покупке платы с FPGA . Но мне захотелось сделать шаг дальше и начать не с Verilog-а, а с паяльника. Это статья о том, как я занялся разработкой электроники, не имея почти никакого опыта в этой сфере. Цель - сделать устройство с FPGA на котором можно загрузить Linux, подключить экран и клавиатуру, а потом прямо там писать и компилировать код. Зачем это нужно? Это хобби. Практической ценности не имеет. Просто я так развлекаюсь. А сейчас у меня, к моему собственному удивлению, все задуманное получилось, и я хочу показать и похвастаться.

https://habr.com/ru/articles/910484/

#verilog #spinalhdl #riscv #fpga #diyкомпьютер

Разработка DIY компьютера на базе FPGA

Желание поиграть в проектирование собственного процессора обычно приводит к покупке платы с FPGA . Но мне захотелось сделать шаг дальше и начать не с Verilog-а, а с паяльника. Это статья о том, как я...

Хабр

Разработка DIY компьютера на базе FPGA

Желание поиграть в проектирование собственного процессора обычно приводит к покупке платы с FPGA . Но мне захотелось сделать шаг дальше и начать не с Verilog-а, а с паяльника. Это статья о том, как я занялся разработкой электроники, не имея почти никакого опыта в этой сфере. Цель - сделать устройство с FPGA на котором можно загрузить Linux, подключить экран и клавиатуру, а потом прямо там писать и компилировать код. Зачем это нужно? Это хобби. Практической ценности не имеет. Просто я так развлекаюсь. А сейчас у меня, к моему собственному удивлению, все задуманное получилось, и я хочу показать и похвастаться.

https://habr.com/ru/articles/910484/

#verilog #spinalhdl #riscv #fpga #diyкомпьютер

Разработка DIY компьютера на базе FPGA

Желание поиграть в проектирование собственного процессора обычно приводит к покупке платы с FPGA . Но мне захотелось сделать шаг дальше и начать не с Verilog-а, а с паяльника. Это статья о том, как я...

Хабр
Convincing probe-rs to Work with VexRiscv

Adventures in hardware hacking, low-level software, FPGAs, and more!

craigjb.com

Quanto è difficile disegnare un microprocessore capace di far funzionare Debian? Serve un esercito di ingegneri, o lo sforzo è alla portata di un singolo individuo?

Charles Papon è riuscito nell’impresa da solo! Per riuscirci ha creato #SpinalHDL, un linguaggio più astratto di Verilog e VHDL.

In questo video Charles Papon mostra il suo microprocessore in funzione su un FPGA e riesce persino a giocare a Doom!

https://peertube6.f-si.org/w/6sTipzg5dy8Ya83gNjLvrN

Presentazione: https://wiki.f-si.org/index.php?title=Moving_toward_VexiiRiscv

#VexiiRiscv

Moving toward VexiiRiscv, Charles Papon, SpinalHDL

PeerTube