タイトルには「続き」と書いていますが、前回のコンテンツはありません。先週土曜にやっていた事の続き、というだけの事です^^;
今日は昼ごろからザイリンクスのFPGAのブレッドボードで遊んでました。
今は、VGA出力を作っていたのですが、なんとなく動いてきました。
FPGA内にビットマップ表示機能を実装して、同じFPGAの中に構成したCPUコアからこのビットマップを自在にコントロールできる事が目的です。従って、、FPGA 1chipで全部やろうということで、中身は以下のようになりました。
・VGA出力IP
・PicoBlaze(CPU コア)
・VRAM(Block RAM,デュアルポート・VGAモノクロ1面)
PicoBlaze以外の部分は今回作ったものです。
【システムの全体構成】

【CPUコアとVRAMとのI/F】

残念ながら、PicoBlazeには外バスがありません。そこで、Memory I/Fというモジュールを作成しました。
PicoBlazeからはレジスタ空間にアドレスとデータをセットすると、結果的にはVRAMに書かれます。
とりあえず、PicoBlazeはPCCOMPというCコンパイラを使用しようと思ったのですが、一発でいろいろすると動かないときにわけがわからなくなるので今回はアセンブラです。
アセンブラ10年くらい離れていたんですが^^;
今は、画面上でハードウェアカーソル(という名の単なる緑色の十字線)が、ビットマップスクリーン上をスキャンしている状態です。
ハードウェアカーソルは、描画はハードでやりますが、座標はPicoBlazeのアセンブラで設定してます。
とりあえず、次はDDR SDRAMをVRAMとして描画するようにしたいのですが、DDR SDRAMの制御ってなんかめんどそう・・・ですがさすがにFPGAのブロックRAMを使用していたのでは、VGAはモノクロ1ビットが限界です。
でも動いてとりあえずうれしいです。^^;
(モニター2台並べてます^^;)
【ハードウェアカーソル】
..まあ表示的には、なんかノイズ? みたいな風にしか見えないんですが^^;
またソース一式は公開したいのですが、見ての通りまだ未完成なので、またその内に公開させていただきます。
最近のコメント