FC2カウンター FPGAの部屋 XPSのカスタムIPにおけるMUIファイルの書き方
FC2ブログ

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

FPGAの部屋

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

XPSのカスタムIPにおけるMUIファイルの書き方

custom_vtc IPコアを例にMUIファイルの書き方を書いておく。
なお、MPDファイルの書き方は、”XPSのカスタムIPにおけるMPDファイルの書き方1”からのシリーズを参照のこと。

なお、Platform Specification Format Reference ManualEmbedded Development Kit (EDK) 14.1 UG642 (v14.1) April 24, 2012 ”の75ページ ”Chapter 5 Microprocessor-IP User Interface (MUI)”をマニュアルとして参照にした。

MUI (Microprocessor-IP User Interface) ファイルは、XML形式で書かれていて、IPをXPSプロジェクトにAdd IPするときに表示されるダイアログのフォーマットを指定することができる。

DTD Reference Section
DTDファイルの ipdialog.dtd を参照する。ipdialog.dtd は、EDK_Installフォルダ/hw/XilinxProcessorIPLib/pcores にある。このファイルには、PLBの定義などがあった。
ipdialog.dtd は、MUIファイルの初めの行で定義してある。

<!DOCTYPE doc SYSTEM "../../ipdialog.dtd" [


Internal Entity Definition Section
すでに、DTDファイルで定義してある信号もあるけれども、IPコア固有のパラーメータを個別に定義する必要がある。

・<key> - MPDのパラメータの名前。このタグの値は、MPDファイル内の名前と一致する必要がある。

・<label> - 短いテキスト記述。このタグは、ダイアログボックスのパラメータのラベルを定義する。

・<tip> - ツールチップ。この情報は、マウスは、パラメータ名の上に保持されているダイアログボックスのポップアップウィンドウに表示される。コンテンツは、このタグは必要ない。

custom vtc の例をw下に示す。

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE doc SYSTEM "../../ipdialog.dtd" [
    <!-- -->
    <!ENTITY H_ACTIVE_VIDEO '
    <widget id="H_ACTIVE_VIDEO">
        <key>H_ACTIVE_VIDEO</key>
        <label>H_ACTIVE_VIDEO</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY H_FRONT_PORCH '
    <widget id="H_FRONT_PORCH">
        <key>H_FRONT_PORCH</key>
        <label>H_FRONT_PORCH</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY H_SYNC_PULSE '
    <widget id="H_SYNC_PULSE">
        <key>H_SYNC_PULSE</key>
        <label>H_SYNC_PULSE</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY H_BACK_PORCH '
    <widget id="H_BACK_PORCH">
        <key>H_BACK_PORCH</key>
        <label>H_BACK_PORCH</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY V_ACTIVE_VIDEO '
    <widget id="V_ACTIVE_VIDEO">
        <key>V_ACTIVE_VIDEO</key>
        <label>V_ACTIVE_VIDEO</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY V_FRONT_PORCH '
    <widget id="V_FRONT_PORCH">
        <key>V_FRONT_PORCH</key>
        <label>V_FRONT_PORCH</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY V_SYNC_PULSE '
    <widget id="V_SYNC_PULSE">
        <key>V_SYNC_PULSE</key>
        <label>V_SYNC_PULSE</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY C_M_AXI_SUPPORTS_WRITE '
    <widget id="C_M_AXI_SUPPORTS_WRITE">
        <key>C_M_AXI_SUPPORTS_WRITE</key>
        <label>C_M_AXI_SUPPORTS_WRITE</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY V_BACK_PORCH '
    <widget id="V_BACK_PORCH">
        <key>V_BACK_PORCH</key>
        <label>V_BACK_PORCH</label>
        <tip></tip>
    </widget>
    '>
]>


Labelはダイアログで、下の図のように表示される。この Internal Entity Definition Section では定義のみで、次に示す Entity Reference Section で item としてインスタンスされる必要がある。
custom_vtc_6_130608.png


Entity Reference Section
ここでは、Add IPの時のダイアログの体裁を決定する。

・<doc> - エレメント階層のトップでルート・エレメント。

・<view> - view は、階層の第2レベルの、タブ名となる。view id がIDを示し、<display> </display>で囲まれた間の名前がタブ名として表示される。

・<group> - グループを示す。group id がIDを示し、<display> </display>で囲まれた間の名前がタブ名として表示される。

・<item> - Internal Entity Definition Section で定義されたエンティティを表示させる。

custom_vtc で下のように書くと、

<doc>
    <view id="Video Timing">
        <display>Video Timing1</display>
        <group id="Video Timing">
            <display>Video Timing2</display>
            <item>&H_ACTIVE_VIDEO;</item>
            <item>&H_FRONT_PORCH;</item>
            <item>&H_SYNC_PULSE;</item>
            <item>&H_BACK_PORCH;</item>
            <item>&V_ACTIVE_VIDEO;</item>
            <item>&V_FRONT_PORCH;</item>
            <item>&V_SYNC_PULSE;</item>
            <item>&V_BACK_PORCH;</item>
        </group>
    </view>
    
</doc>


ダイアログは下の図のように表示される。
custom_vtc_5_130608.png
  1. 2013年06月08日 04:04 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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