GitHubの gdevic/FPGA-Calculator は、FPGAを使って科学計算機を実装する オープンソースプロジェクトです。
ここでいう FPGA は、ざっくり言うと 後から中身を書き換えられる電子回路のチップ のことです。普通のCPUでソフトウェアを動かすのではなく、回路そのものを設計して、そこに計算機を作り込んでいくわけですね。
これだけでも十分にマニアックですが、このプロジェクトはさらに一歩進んでいて、soft CPU を使っています。
soft CPU というのは、FPGAの中に作る“CPUもどき”のことです。ハードに最初から入っているCPUではなく、回路として実装されたCPU です。つまりこの電卓は、FPGAの上で「自作CPUが計算機を動かす」という、かなり贅沢な構成になっています。
正直、ここがまず面白い。
普通は「電卓ならマイコンでよくない?」となるところを、あえてFPGAでやる。しかも見た目だけでなく、内部設計まで含めて作り込んでいる。こういう“本気で遊ぶ”感じ、私はかなり好きです。
READMEを見ると、このプロジェクトは単に回路ファイルを置いてあるだけではありません。
microcode firmware、assembler、シミュレータ、テストハーネス、FPGA synthesis用の設定 まで揃っています。
つまり、開発対象は「電卓」そのものだけではなく、電卓を作るための道具箱全部 なんです。ここがかなり重要です。
ハードウェア開発は、回路を書いて終わりではありません。動作確認、シミュレーション、FPGAへの書き込み、バグ取りまで含めると、むしろ周辺ツールの整備が勝負になりがちです。このリポジトリはそこをかなり丁寧に押さえている印象があります。
READMEにある構成はこんな感じです。
verilog/ucode/quartus/modelsim/Qt/calctest/tools/Pathfinding/この分け方を見るだけでも、「勢いで作った趣味プロジェクト」というより、かなり実験と検証を重ねて育てた作品 だとわかります。
特に Pathfinding/ があるのが渋いですね。電卓の内部ロジックを、別プロジェクト的に研究しているわけで、これは“作る前に考え抜く”姿勢が見えます。こういう泥臭さ、かなり好感があります。
READMEでは、まず一番手軽なのは Qtシミュレータ をビルドする方法だと案内されています。
要するに、実機のFPGAボードがなくても、PC上で動作確認できる ということです。これはかなり親切です。
流れとしては、verilog/ で make qt を実行し、Qt Creator で Qt/Calculator.pro を開いてビルドする、という形になっています。
つまり、Windows + WSL2 + Verilator + Qt という少し込み入った環境を使って、まずはデスクトップ上で動かすわけです。
ここで出てくる道具も、ちょっと補足しておきます。
要するにこのプロジェクトは、「電卓アプリ」ではなく「電卓ハードウェアの総合開発環境」 に近いです。
このスケール感が、かなりロマンあります。
普通の電卓は、表から見れば「数字を入れて答えを出す」だけです。
でもこのプロジェクトは、その裏側を全部見せてくれる感じです。
たとえば、
といった、**“答えが出るまでの全部”** を設計対象にしています。
個人的には、こういうプロジェクトはかなり教育的だと思います。
単なるGUI電卓だと、裏側はブラックボックスになりがちです。でも FPGA で作ると、計算の流れや制御の仕組みがちゃんと見える。しかもシミュレーションで何度も確認できる。これは、学習用途としてもすごく強いです。
もちろん、実用面だけを考えればオーバースペックかもしれません。
でも、オーバースペックだからこそ学べることが多い のもまた事実です。私はこういう「やりすぎ」が技術を面白くすると思っています。
READMEの Languages には以下が並んでいます。
この並びがすでに強いです。
1つのソフトを作るというより、ハード・ソフト・検証・GUIが全部混ざった世界 になっています。
特に SystemVerilog と Assembly が中心にあるのが、FPGAプロジェクトらしいところです。
SystemVerilog は回路を記述する言語で、Assembly は非常に低レベルな命令記述です。
この2つが同時に主役になるプロジェクトは、そう多くありません。
逆に言うと、ここに挑む人は「アプリを書きたい人」ではなく、コンピュータの仕組みそのものを触りたい人 なんだろうな、と思います。
ライセンスは Creative Commons Attribution-NonCommercial-ShareAlike 4.0 です。
簡単に言うと、
という条件付きです。
また、GitHub上では stars が 103、forks が 4 で、issue は 0 と表示されていました。
これは超巨大プロジェクトではないものの、ちゃんと見つけられて、見られている タイプの作品だと感じます。こういう“濃い個人〜少人数作品”は、派手さより中身で勝負していることが多いので、発見すると嬉しいんですよね。
この FPGA-Calculator の面白さは、単に科学計算機を作ったことではありません。
FPGA、soft CPU、microcode、シミュレータ、テスト、FPGA synthesis まで含めて、電卓が成立する仕組み全体を作品としてまとめている ところにあります。
技術的にはかなりハードルが高いですが、そのぶん見える世界も広いです。
「ボタンを押したら答えが出る」の裏に、こんなに多層的な設計があるのか、と驚かされます。私はこういうプロジェクトを見ると、コンピュータって結局“積み重ねの芸術”なんだな、と思います。
もしあなたが、
というタイプなら、かなり刺さるはずです。
かなり玄人向けではありますが、だからこそ面白い。こういうプロジェクト、私はもっと増えてほしいと思います。
参考: GitHub - gdevic/FPGA-Calculator: From FPGA Gates to Scientific Calculator