FC2カウンター FPGAの部屋 2011年08月04日
FC2ブログ

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

FPGAの部屋

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

AXIバスのEDKでキャラクタ・ディスプレイ・コントローラのカスタムIPを作る4

AXIバスのEDKでキャラクタ・ディスプレイ・コントローラのカスタムIPを作る3”の続き。

前回でISEにインプリメントが終了した。今回はSDKを立ち上げてビットファイルをダウンロードする。(ISE13.2を使用)
AXIバスのEDKチュートリアルを試す10(カスタムIPを作る4)”を参照。

1.Project NavigatorのDesignのHierarchyウインドウでsystem_i(system.xmp)をクリックして、下のProcessesウインドウでExport Hardware Design to SDK with Bitstream を右クリックメニューから Process Properties... を選択する。

2.Process Propertiesを見るとLaunch SDK after Exportにすでにチェックが入っていた。

3.Project NavigatorのExport Hardware Design to SDK with Bitstream をダブルクリックして、SDKを起動する。

4.SDKが立ち上がって、ワークスペースを聞いてくる。ワークスペースの名前を入れてOKボタンをクリックする。(フォルダを作ってない状態で名前を入れた)
SP605_AXI_CDC_26_110804.png

5.SDKが起動した。
SP605_AXI_CDC_27_110804.png

6.File メニューからNew... -> Xilinx C Project を選択して、プロジェクトを作成する。
SP605_AXI_CDC_28_110804.png

7.Hellow Worldプロジェクトを生成する。
SP605_AXI_CDC_29_110804.png

SP605_AXI_CDC_30_110804.png

8.コンパイルされてDoneした。

9.SP605の電源をONした。

10.SDKでXilinx ToolsメニューからProgram FPGAを選択した。
SP605_AXI_EDK_42_110709.png

11.Program FPGAダイアログが開く。Programボタンをクリックする。
SP605_AXI_CDC_31_110804.png

12.SDKのProject Explorerで、hello_world_0の下のBinariesの下のhello_world_0.elfで右クリックして、右クリックメニューからDebug As -> Lanunch on Hardware を選択する。
SP605_AXI_EDK_44_110709.png

13.リンカー・スクリプトが走って、実行形式プログラム入のビットファイルがボードにダウンロードされる。C/C++ to Debugにパースペクティブを変更するダイアログが開くので、Yesボタンをクリックする。
SP605_AXI_EDK_45_110709.png

14.SDKにデバック用のパースペクティブが表示された。
SP605_AXI_CDC_32_110804.png

15.SDKの上の真ん中のウインドウタブでXMDを選択する。
SP605_AXI_CDC_33_110804.png

16.XMDコンソールで下のコマンドを入力した。

mwr 0x74200000 0x0
mwr 0x74200004 0x3C1
mwr 0x74200000 0x4
mwr 0x74200004 0x3C2



17.SP605のDVI-Iコネクタから、VGA変換プラグを通して液晶ディスプレイに接続すると、AとBの文字が見えた。
SP605_AXI_CDC_34_110804.jpg

18.XMDコンソールで下のコマンドを入力してリードした。(XMDコンソールの内容をコピペする)リードもOKだ。

XMD% mrd 0x74200000
74200000: 00000004

XMD% mrd 0x74200004
74200004: 000003C2

XMD% mwr 0x74200000 0x0
XMD% mrd 0x74200004
74200004: 000003C1



うまく行った。嬉しい。
注意点としては、カスタムIPを修正したら、XPSでクリーンアップして、Project Navigatorでインプリメントしてから、Export Hardware Design to SDK with Bitstream をダブルクリックしてSDKを立ち上げないと、ハードウェアの変更が反映されないことだ。これで、時間を潰してしまった。

今度は、ソフトウェアを開発してみたい。モニタ作るのも良いかも?その前に現在の画面は、640x480なので、800x600くらいに拡大しようか?

(追記)
アドレスマップを解説します。

0x74200000 :レジスタ1、キャラクタ・ディスプレイ・コントローラのアドレスを示す。Readの場合はレジスタ1の内容がそのまま出力される。
0x74200004 :レジスタ2、キャラクタ・ディスプレイ・コントローラのデータを示す。このレジスタにWriteすると、キャラクタ・ディスプレイ・コントローラのフレーム・バッファのレジスタ1で示された番地にデータがWriteされる。Readの場合は、フレーム・バッファのレジスタ1で示された番地の内容をReadする。


キャラクタ・ディスプレイ・コントローラについては、”キャラクタ・ディスプレイ・コントローラの構成”辺りを参照してください。
  1. 2011年08月04日 05:39 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0