系统与基础设施blog.notdot.net
从零构建你自己的 FPGA(2012)
Build Your Own FPGA (2012)
2012 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇 2012 年的文章记录作者用廉价的 7400 系列逻辑芯片搭建一个自制 FPGA 的尝试,讲解如何用可配置逻辑块和互连网络拼出可编程数字硬件,并展示实际板卡、布线和焊接细节。它是教学/DIY 项目,目的不是替代商用 FPGA,而是把 FPGA 从黑盒变成能亲手理解和复制的电路。
为什么经久不衰:它把通常黑盒化的 FPGA 拆解成门级可理解、可亲手复制的硬件,既是开源硬件精神的实践,也是理解数字逻辑和芯片设计的经典入口。
HN 评论精选
赞赏项目的可理解性,但担心总线窄、缺交叉开关会让扩展和布局变得困难。
我很喜欢这个点子!它让我想起 megaprocessor 项目,但规模更易接近、也更容易理解。文章写得很清楚,板子本身的运行也很容易看懂。越想越觉得我需要一面墙那么大的阵列来做时钟,也许配一个翻点显示器显示时间?我看到的主要问题是总线相当窄,而且没有专门的路由交叉开关,所以布局会非常困难,可能要用很多只是充当连线通道的“不活跃”模块。
osamagirl69查看英文原文
I love the idea of this! It reminds me of the megaprocessor project[1] but much more accessible in its scale, and way easier to understand. The writeup is very clear, and the boards themselves are very easy to follow in operation. The more I think about it, the more I feel the need for a wall sized array of them acting as a clock. Maybe with a flipdot display for the time? The main issue I see is that the busses are pretty narrow and the there isn't a dedicated crossbar for the routing so the placement is going to be really challenging and probably involve a lot of 'inactive' modules that are just acting as a passthrough for the wiring. [1]http://megaprocessor.com/
提出用离散 FPGA 跑软核 CPU 的设想,并给出 PCB 焊接、助焊剂清理和手工布线的实用建议。
非常棒的项目。现在需要有人综合出一个 CPU,并做出足够大的离散 FPGA 来(很慢地)运行它。给在家玩的人几点建议:1)少用焊锡。PCB 厂做板时通常有阻焊层,焊盘上的锡已经足够,焊接 SMD 元件时不用再加锡;用助焊笔涂助焊剂,把元件放上去再重新熔化即可,更整洁也更快,只要检查焊盘上确实有足够锡形成牢固焊点(用灯和放大镜帮忙)。2)始终清理助焊剂,即使标称免清洗。3)自动布线器结果不理想;可以先跑一遍自动布线,再拆掉走线、调整元件位置,以减少过孔、让走线更直。刚开始做 PCB 时我想用自动布线器,但结果总是很丑;我遇到一个人用旧 DOS 程序手工布了一块六层 ARM 板,这让我相信手工布线没那么难,至少还能让人平静。
rrmm查看英文原文
Superneat project. Now someone needs to synthesize a CPU and build a big enough discrete fpga to run it (very slowly) on. A few comments for those playing at home: 1) Use less solder. When you get boards done at the pcb house, they usually put a solder mask. There is enough solder on the pads that you can solder SMD parts without adding more. Just flux it with a fluxpen, lay the part on top, and remelt it. Much neater and much faster. You just have to check that there is actually enough solder on the pad to make a solid joint (a light and a magnifier help to verify). 2) Always clean the flux off, even if it's no-clean. 3) Autorouters produce less than ideal results. If you start with an autorouter pass, you can then go back and tear up lines and reposition parts to use fewer vias and straighter lines. When I first started doing pcbs I wanted to use autorouters, but the results were always ugly. I met a guy who had done a 6-layer ARM board in some old DOS program manually which convinced me it probably wasn't that big of a deal to route by hand. It's calming if nothing else.
提醒 FPGA 行业壁垒极高,多数新公司失败,软件生态比硬件更难。
这不是要打击这些努力,但过去十年里约有 10 家尝试进入 FPGA 市场的公司倒闭了:TierLogic、CSwitch、Ambric、MathStar、Agate Logic、Nusym、AboundLogic(M2000)……只有一桩成功收购:Lattice 收购 Silicon Blue。更早 ST Micro 两次尝试进入 FPGA 市场,其中一次还是“开源”概念的 GOSPL;Intel 也试过一次。其他多家公司也失败了。Xilinx 和 Altera 占据 FPGA 市场近 90% 份额,其他进入者的努力约 90% 都失败了,主要原因是低估了软件的重要性。
sh_vipin查看英文原文
Nothing to discourage the efforts here but close to 10 companies were closed which tried to enter in FPGA market in last 10 years alone. Here is the list : TierLogic , CSwitch, Ambric, MathStar, Agate Logic, Nusym, AboundLogic (M2000) Only one successful acquisiton. Lattice acquired --> Silicon Blue In the past, ST Micro tried 2 times to enter in FPGA Market, once even with the "open Source " concept - GOSPL. Intel for once for sure. Other several companies failed too. Xilinx and Altera hold close to 90% market share in FPGA market. 90% of other efforts to enter this market have failed earlier. Mostly because, companies underestimated Software importance.
商用 FPGA 虽封闭但原理简单可复制,比依赖封闭 ARM 的“开源硬件”更接近真正开放。
这就是我喜欢 FPGA 和软 CPU 的地方。一些“开源硬件”设计使用 ARM CPU,而 ARM 是极其封闭、专利重重的(例如 Arduino、Raspberry Pi 等)。你可能会说商用 FPGA 也是封闭的,确实如此,但它的工作原理非常简单(大量互连的门),很容易复制,就像这个很酷的项目所展示的那样。
aortega查看英文原文
This is what I like about FPGAs and soft-cpus. Some "open-hardware" designs use ARM cpus, that are as closed and patented as they can be (I.E. Arduino, Raspberry PI, etc.) You may argue that commercial FPGAs are also closed and while it's true, the principle of operation is so simple (lots of interconnected gates) that can be easily replicated, like this cool project shows.
历次讨论
同类还值得读
TTY 揭秘(2008)
The TTY demystified (2008)
经典文章深入剖析了 Unix/Linux 中 TTY 子系统的工作原理,包括线路规程、终端驱动、信号与控制字符等机制。
系统与基础设施上首页 11 次 · 2009–2025linusakesson.net编辑精选为什么 GNU grep 这么快
Why GNU grep is Fast
FreeBSD 邮件列表上一篇广为流传的帖子,解释 GNU grep 为什么快:核心在于 Boyer-Moore 字符串搜索算法配合精心优化的内部循环和 I/O,让程序在搜索时“…
系统与基础设施上首页 9 次 · 2010–2022lists.freebsd.orgXplain:为普通人讲解 X11
Xplain – Explaining X11 for the rest of us
《Xplain》是作者(HN 用户 Jasper_)写的一系列 X11 长文,用他在浏览器中重建的 X11 绘图模型做交互演示,讲解 X11 的绘图模型与窗口系统设计。
系统与基础设施上首页 6 次 · 2013–2020magcius.github.io编辑精选旋风教程:为 Linux 创建极小 ELF 可执行文件(1999)
A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999)
breadbox 写于 1999 年的经典教程,主题是如何为 Linux 手工构造并裁剪出体积极小的 ELF 可执行文件。
系统与基础设施上首页 6 次 · 2007–2025muppetlabs.comPostgreSQL 内部原理
The internals of PostgreSQL
《The Internals of PostgreSQL》是一本免费在线书籍,系统讲解 PostgreSQL 的内部实现,包括查询处理、并发控制、WAL、缓冲区管理等核心机制。
系统与基础设施上首页 5 次 · 2017–2025interdb.jp编辑精选