FC2カウンター FPGAの部屋 ZedBoardにビットマップ・ディスプレイ・コントローラを追加する11(char_wirte_axi_master IPを追加2)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する11(char_wirte_axi_master IPを追加2)

ZedBoardにビットマップ・ディスプレイ・コントローラを追加する10(char_wirte_axi_master IPを追加1)”の続き。

DDR3 SDRAMのフレーム・バッファにキャラクタを書き込むchar_write_axi_master IP ができた。char_write_axi_master IP は、ARMのソフトウェアからキャラクタデータを書き込むとおかしくなってしまうため、ハードウェアで書き込んだら正常に表示できるのかどうか?を確かめるために行なっている。なお、キャラクタ・ディスプレイ・コントローラでは正常に表示できていると思われるので、DDR3 SDRAMの設定に問題があるのではないか?と思う。(ARMプロセッサにすれば想定外の使い方をしているのだと思うが。。。本当はARMのブートコードを確認して適切に設定する必要があると思う。なかなかそこまで行かないのだが。。。)
単体シミュレーションでは動いているように見える。出来上がったchar_write_axi_master IP とAXI4 Slave の動作をするaxi_master_bfm を接続してシミュレーションを行った。シミュレーション波形を下の図に示す。
ZedBoad_BitMap_DispCnt_93_121014.png

シミュレーション波形で前半の何もない部分は、キャラクタROMを読みだして、そのビット配列に応じてM系列で生成したカラーコードのピクセルを1キャラクタ分FIFOに貯めている部分だ。後半部分では8ライン分を8回に分けてバーストし、AXI4バス経由でDDR3 SDRAMに書き込んでいる。

char_gen_8raster でキャラクタROMを読みだして、そのビット配列に応じてM系列で生成したカラーコードのピクセルを1キャラクタ分FIFOに貯めている。黄色のカーソルラインでその前半部分が動作しているのがわかると思う。1キャラクタの8ライン分のピクセルデータを入力データ幅32ビット、出力データ幅64ビットのFIFOに収めている。そして後半部分でそのキャラクタのピクセルを出力している。その出力イネーブルがraster_ready だ。
ZedBoad_BitMap_DispCnt_94_121014.png

これで単体シミュレーションは終了したので、これをビットマップ・ディスプレイ・コントローラに組み込んでキャラクタが表示できるかどうかをテストする。

(追加)当然ながら、この前半部分(黄色のカーソルバーから前)と後半部分(黄色のカーソルバーから後)は2回目以降は重ねあわせてレイテンシ(または、その一部)を隠蔽することができる。しかし、現在は連続的にキャラクタを描画しているが、実際には、0.2秒に1キャラクタを描画する仕様のため隠蔽する必要がない。
  1. 2012年10月14日 06:05 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2277-b9bb13ec
この記事にトラックバックする(FC2ブログユーザー)