Categories: 工作・開発

電卓が欲しくてCPUを自作するところから始めた、動く科学電卓が完成

電卓を自作するなら、Raspberry PiやArduinoにコードを書けばいい。しかしBaltazar Studiosという名義で活動するMakerは「電卓を動かすCPUそのものを設計するところから始めた」。FPGAと呼ばれるプログラマブルな回路チップ上に独自のプロセッサを構築し、その上で動く科学電卓を完成させた。

CPUを一から設計するとはどういうことか。ラズパイのような既製チップは「加算・乗算・小数点の扱い方」がすでに設計済みだが、作者はその土台すらない状態から出発した。最初に決めなければならないのは「数値を内部でどう表現するか」だ。ここでHPが1970年代の電卓から採用してきた手法を選んだ。数字1桁を4ビットの塊で管理し、10進数のまま計算するBCD(二進化十進数)という方式で、「0.1 + 0.2」をプログラミングで計算したときに「0.30000000000000004」になるような2進数由来の誤差を回避できる。電卓として当然求められる正確な十進計算を確保するための選択だ。

加算から乗算・除算まで、FPGAが持つ内蔵乗算回路は使わず1桁ずつ処理する独自アルゴリズムで実装した。外部デバイスはすべてメモリマップドI/Oで接続し、キーパッドスキャンとディスプレイ制御それぞれを独立したモジュールとして分離している。使ったFPGAはAltera Cyclone IIという古めのモデルだが、CPU本体と周辺回路すべてを実装してもチップのリソースは3割程度しか使っておらず、余裕がある。

完成した電卓は3Dプリント製ケースにVFD風のOLEDディスプレイを組み合わせた本格的な仕上がりだ。最終版はJLCPCBで製造したカスタム基板にLiPoバッテリーを内蔵し、完全に自己完結した携帯可能なデバイスになっている。Baltazar Studiosはコードの詳細解説と整理済みソースの公開を予定しているという。

関連情報

FabScene編集部

FabScene編集部