FC2カウンター FPGAの部屋 ZedBoardにキャラクタ・ディスプレイ・コントローラを追加する1(XPSプロジェクト)
FC2ブログ

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

FPGAの部屋

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

ZedBoardにキャラクタ・ディスプレイ・コントローラを追加する1(XPSプロジェクト)

今回はZedBoardにキャラクタ・ディスプレイ・コントローラを追加しようと思う。AXI4 Slave IPの作製でAtlysボード用のキャラクタ・ディスプレイ・コントローラをAXI4 Slave IPとして作製した。これはHDMI端子への出力だが、ZedBoaradはADV7511 HDMI Transmitterが搭載されていて、このチップの使用方法を探らなければ、HDMI端子に出力することができない。ADV7511 のチュートリアルもあってやってみようと思うが、とりあえずは、キャラクタ・ディスプレイ・コントローラからVGA端子に出力しようと思っている。
ZedBoardのVGA端子は、”ZedBoard (Zynq™Evaluation and Development) Hardware User’s Guide Version 1.6 September 5th, 2012”の16ページ”2.4.2 VGA Connector”と回路図によると、抵抗分割のRGB各4ビット出力だった。Atlysボード用のAXI4スレーブのキャラクタ・ディスプレイ・コントローラ部分のHDMI出力用回路を取り除けば、容易につなぐことができると思う。

1.PlanAhead 14.2 で、ZedBoard_CDC_SVGAプロジェクトを作製した。
ZedBoard_CDC_SVGA_1_120916.png

2.”WebPACK14.2でZedBoardのPS & PLチュートリアルをやってみた1(XPSプロジェクトの生成)”を参考にしながら、XPSプロジェクト(system) を追加した。今回はWebPACKを使用していませんが、WebPACKでも同様にできると思います。
ZedBoard_CDC_SVGA_2_120916.png

3.Spartan6\Atlys\Atlys_XPS_CDC_SVGA_141\pcoresから、cdc_axi_slave_v1_00_a を、K:\HDL\FndtnISEWork\Zynq-7000\ZedBoard\ZedBoard_CDC_SVGA\ZedBoard_CDC_SVGA.srcs\sources_1\edk\system\pcores にコピーした。

4.cdc_axi_slave_v1_00_a を、HDMI端子出力用からVGA端子出力用に書き換えた。dvi_disp.vhd やDigilent社のライブラリを削除して、その他のHDLファイルを書き換えた。

5.cdc_axi_slave_v1_00_a の.mpd, .pao ファイルを書き換えた。

6.XPSのProject メニューからRescan User Repositoriesを行った。

7.IP Catalog にUSERが増えて、その中にcdc_AXI_Slave IPコアが出来た。cdc_AXI_Slabe を右クリックメニューからAdd IPを行う。

8.確認のダイアログが出る。Yesボタンをクリックした。

9.XPS Core Config ダイアログが出る。そのままOKボタンをクリックした。
ZedBoard_CDC_SVGA_3_120916.png

10.cdc_AXI_Slave IPコアどのプロセッサに接続するかを決めるダイアログが出る。processing_system7_0 が選ばれている。
ZedBoard_CDC_SVGA_4_120916.png

11.XPSを見ると、cdc_axi_slave_0 がM_AXI_GP0でARMプロセッサに接続された。
ZedBoard_CDC_SVGA_5_120916.png

12.Portsタブで、cd_axi_slave_0 の外部ポートを接続した。(注:その前にNetの設定項目を追加している。Nameなどのバーを右クリックして、右クリックメニューからNetを選択する。詳しくは、”ZedBoardにビットマップ・ディスプレイ・コントローラを追加する2(XPSの設定2)”を参照)
ZedBoard_CDC_SVGA_6_120916.png

13.次にpixclk に40MHzを入力する必要がある。pixclk をprocessing_system7_0::FCLK_CLK1 に接続した。(注:その前にprocessing_system7_0 を開いて、FCLK_CLK1のNetでNew Connection を選択し、FCLK_CLK1 に新しいネット名 processing_system7_0_FCLK_CLK1 が割り当てる必要がある。詳しくは、”ZedBoardにビットマップ・ディスプレイ・コントローラを追加する2(XPSの設定2)”を参照)
ZedBoard_CDC_SVGA_7_120916.png

14.ZynqタブのClock Generation をクリックした。
ZedBoard_CDC_SVGA_8_120916.png

15.Clock WizardでFCLK_CLK1を40MHzに設定した。
ZedBoard_CDC_SVGA_9_120916.png

16.設定後にLog が出た。いろいろなクロックの情報が見えた。DDR3は533.333MHzと言うことはDDR3-1066だった。CPUは666.667MHz、QSPIは100MHzのSPIらしい
ZedBoard_CDC_SVGA_10_120916.png

・M_AXI_GP0 のデータ幅が32ビットであることを確かめた。

17.Addressesタブを見ると、cdc_axi_slave_0 にアドレスが割り当てられているのが確認できた。
ZedBoard_CDC_SVGA_11_120916.png

18.ProjectメニューからDesign Rule Check を選択した。エラーはなかった。
ZedBoard_CDC_SVGA_12_120916.png

19.XPSを閉じて、PlanAheadプロジェクトに戻った。
ZedBoard_CDC_SVGA_13_120916.png

ZedBoardにキャラクタ・ディスプレイ・コントローラを追加する2(インプリメント)”に続く。
  1. 2012年09月16日 05:56 |
  2. ZedBoard
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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