ちょっくらCPUでも作ろうかと思う。

前々からFPGA上にCPUを実装して遊んでみよう思っていたんで、恐らく最後の暇な夏休みであろうこの休みに着手した。
とりあえず用意したのは、参考書としてこれと、
ディジタル回路設計とコンピュータアーキテクチャ (IT Architects' Archiveクラシックモダン・コンピューティング)
実装先としてXilinx Spartan 3A Starter Kit。
いまのところテキストの記述例を見ながら単一サイクルプロセッサを書いてみたところ。テストベンチは通った。
http://w0q4d.orz.hm/~ikuo/files/minp1.zip
これをちまちまパイプライン化したものはこちら。両方ともVeritakのプロジェクトファイルを含んでいるので手持ちがあるなら実行可能。そんなに量はないのでLiteでも大丈夫だと思う。
http://w0q4d.orz.hm/~ikuo/files/minp2.zip
パイプライン化したものはテストベンチが通っていないことに注意。
ちなみにどっちも動作クロックが殆ど変わらないとか気にしない。
ちなみにXilinxの場合、フリップフロップを同期式リセットにするとBLOCK RAMに割り当てられ早くなる模様。
追記
09/09/15/03/06にminp2.zipを正しく動作するものに差し替えました。
ハザードコントロールユニットにミスがありました。