コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

FPGA を始めたらやってみたかった事がある。
希代の電子工作入門書「CPUの創りかた」の中で作成している CPU を PLD に書くことで、実際に作成して動かしてみることである。
まあ、あれは実際に部品を集めて作成するから楽しいのであって、PLD で作っては面白さが半減してしまうところではあるけれども。でも、この本の中で作成する TD4 はロジック作成の勉強としては非常に手頃なサイズなのだよね。
まあVerilog-HDL で TD4 を CPLD に作成した御仁は既にいるのだけれども、同じ事を繰り返してもよいじゃない。
てなわけで VHDL でふにふにと作成開始。

td4_vhdl.zip

本の中のロジックIC を VHDL に置き換え、ではなくて役割と意味から実装している。
特にオペランドデコード部分は敢えて if 文の塊にしてみた。本の方では真理値表からざくざくと削ってシンプルな論理に落とし込んでいるけれども、こっちはなにも考えていない。どんなロジックが合成されるかと思ってみてみたら、めちゃくちゃでかくてゲンナリするものがはき出されてみたり。
まだまだ色々直せそうだけれども、現状こんなところ。

クロックについては、手元のボードで動くようにひたすら分周して使用しているので注意。また、ソフトウェアROM に関しては VHDL 内に記述してあるので、ソフトを変えたい時はそこを修正して再合成が必要。
td4.ucf
Xilinx の Spartan-3E sterter kit を使っているひとはこのネットリストを使うと、ボード上ですぐに動かせます。south のトグルボタンが reset で SW0〜3 が IN、LD0〜3 が OUT。

これでよいのか自身はないんだけれども、いちお動いているみたい。
XC9536 にも収まるな、これ。33マクロセル使用とかだった、クロックの分周が無ければ半分くらいになるだろう。
—–

Leave a Reply