picoBlazeでまたhello

P8242769
FPGAはフルプログラマブルなので、CPUとかを自作できちゃったりする。夢があふれます(僕は作れないけどね。でも意外とできるっぽい)。
xilinxからも公式にいくつかCPUデザインが配布されていて、超小型デザインCPUのpicoBlazeというのがある。Z80より命令セットは最小限の8bitCPU。インストラクション(picoBlazeのプログラム)はSPARTANの内蔵RAMにデザインの形で格納されていて、外部メモリという考え方はない(作業用内部メモリは64bytesある)。入出力ポートはポート番号指定でそれぞれ8bit256ポート定義できる。レジスタは16個。演算は、加減算、論理演算、シフト、と昔のCPU的な感じ。

付属のアセンブラを使ってコンパイルすると、外部メモリ初期化ファイルが生成されるので、それをプロジェクトに組み込んで実行する。
組込みは簡単で、KCPSM3.vというコアのファイルと、コンパイルした初期化ファイル組込んで配線(っていうのか?)するだけ。
なにをするにしろ、液晶モジュールが操作できないとデバッグもできないので、とりあえずスターターキットのデモプログラムから液晶制御の部分を拝借して、またhelloWorld(いつまでやってるんだ俺)をやってみた。液晶制御はpicoBlazeのプログラムで行っているのでリソースは殆ど消費しない。素晴しい。ハードロジック化する必要のない、だるい部分と、おおまかなステータス管理などはpicoBlazeにやらせるのがよさそう。
しかしCPUは扱いやすくていいなぁ……