FPGAでCPUを作るプロジェクト

作って学ぶCPU設計入門 - エミュレータでよくわかる!内部動作とAHDL設計・FPGA実装

仕事でブラブラしているときに発見。「似非PLDプロジェクト」では、MSXを 0 から作ろうと言うプロジェクトを行っているそうです。もちろん、CPUやらグラフィックコントローラーも自作(!)です。面白そうなので、僕もこう言うのはじめたいんだよね。

最近のPLD,FPGAを知らない人には、CPUを作ると言うことを理解するのは難しいかも知れません。簡単に説明しておきます。

PLDと言うプログラミングが可能なハードウェアがあり、規模の大きいものだとワンチップで数百万ゲートをプログラミングできます。ゲートと言うのはトランジスタの事で、これが大きいほど複雑なハードウェアを作れると思ってください。CPUと言えども、トランジスタの組み合わせで構成されています。

CPUの入出力規定はデータシートなどで公開されているので、それを元に入出力規定が同じになるように、ハードウェアを設計します。その設計データをPLDなどにプログラミング(トランジスタを組み合わせる)すれば、それは互換CPUなんですよね。

ハードウェアの設計も、無料のツールが数種類(AlteraのMax plus II Baseline等)公開されており、個人でも利用可能です。Pentium 4の0.18usプロセスのものは4200万ゲートと超大規模ですが、386の時代まで遡ると27万5千ゲートです。時間さえあれば、僕でも386互換CPUを「作れる」時代なんですね。

もちろん市販の CPU プログラミングソースもあり、 Z80 、8086 、68000 などがあるようです。

参考リンク:似非PLDプロジェクト