Original CPUを作る/なぜ?
何から何まですべてを自分の手で作りたいから
last modify:010203
コンピュータとの出会い
自分が初めてコンピュータを触ったのは、高校時代、日本橋に置いてあったオフコンだった。(確か、SharpかCASIO製) 本体の横には10数行のBASICのプログラムサンプルが書かれており、打ち込んで走らせてみたがエラーになった。プログラムは走らなかったものの、機械がある種の判断を行い答えを返してくるという点に大いに感動した。
マイ・コンピュータの自作
その後、いろんな本を読んでボードコンピュータのTK-80をはじめ、Z-80やらMotrollaの6800,6802,6502,6809といったCPUと出会った。かつてのラジオ少年の血が騒ぎ、6809のワンボードコンピュータやら、68000とTTLでシステムを組んでOS(CP/M-68K)を乗せたりして遊んでいた。
自作時代の終わり
トラ技やInterface誌の自作記事にGAL/PALがぼつぼつ出始めた。個人でGAL/PALを焼くのは結構大変なので段々と自作も難しくなってきた。また汎用のPCもOSがWinになってから、GUIベースが必須となりアプリケーションを書くのが大変でソフトを組む気がなくなった。そんなこんなでハードの自作も汎用のPC上で何かソフトを作るということなく数年過ごしていた。
組み込み用マイコン
コンピュータとの関係が単なるアプリケーションを走らせるだけの希薄な日々だったが、トラ技が組み込み用1チップマイコン(PIC)の特集を組んで、また歯車が回り始めた。
特に、PIC16C84はFlash内蔵なのでX'talと電源さえ用意すればI/Oでいろいろ遊べる。外観はちょっと足の多いTTL風なのに、これでシステムが組めるとは。。。雑誌には、PICで実現したテレビゲームが掲載されたりもした。しょぼいPICでNTSCの信号まで作るのは凄い。おちゃめなPICを知って、いてもたってもいられず、早速開発キットを買って、簡単なプログラムを組んだ。アセンブラでごしごし書くのがもどかしかったのでコンパイラも作った。PICでアメリカ国歌をならしたり、クリスマスツリーのぴかぴかライトをPICでタイマー制御して遊んだ。
個人でFPGAを焼く時代
そんなおちゃめな1チップマイコンの出現が多くの自作マニアを熱くさせていたが、さらに自作バカを熱くさせる流れがあった。それは、FPGAの低価格化と開発ツール無償化である。ここ20年ぐらいは個人でもPALを焼く人がいたが、さすがにPALを使って大規模なロジックを組み上げるのは無理であった。しかし、FPGAが安くなるのに加えVerilogで論理合成できる開発ツールが無料配布になった。これでハードを自由に焼ける環境が整った!
My CPUを作る
これまでのシステムの自作では、さすがにCPUはIntelやMotrolaや日立等のCPUメーカ品を買うしかなかった。が、FPGAが自分で焼けるようになると自分で設計したCPUが作れるようになる。そうなると、へなちょこながら好き勝手に命令マップや制御回路、演算回路を考案して実装する事ができる。さらに、配線が面倒な周辺回路もFPGAに焼いてしまえば、付属回路もほとんど配線することなくシステムができてしまう!!
IT産業(苦笑)を支えるシステムLSIだが、実はものぐさな自作マニア(それはマニアとは言わないか。。)にももってこいなのだ。
最終目標
自分にとってFPGAによる自作ハードの最終目的は、CPUを作ること自体ではなく、”System on FPGA + 液晶”をキーデバイスとして、かつて触ってわくわくしたパソコンを思い出させるシステムを作ることである。具体的にどんなものかは分からない。(そもそも2万ゲート程度でどこまでできるのか不明(ソフト寄りの人間なので))ただ、思いとしては、携帯型にしたいので、外観はゲームボーイ、またはワンダースワン風で、遊ぶ要素がソフトの実行でなく、ハード(FPGAのセル)を動的にCofigurationすること自体がおもしろさを引き出すものをめざしたい。
システムの仕組みとして、FPGAのコンフィグをシステム実行時にもできるような言語レベルのIF階層をもたせ、ハードロジックが並列で計算され画像出力に結びついていること等を実現したい。
たとえば、波打つ画面や広がる波紋などの画像ビットがFPGAのセルにマッピングされ、各セルが隣り合うセルとのF(x)で計算するなど。。あるいは、かつて存在したというアナログコンピュータと、デジタルコンピュータの融合もいいかもしれない。(ここはかなりSF入ってます)
戻る