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

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

FPGAの部屋

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

XPSでカスタムIPをAdd IPする時のダイアログに入出力ポートを表示する

XPSでカスタムIPをAdd IPする時のダイアログに項目を追加する”の最後の図でも、mt9d111_inf 信号がダイアログの中のシンボル領域に表示されていたと思う。
ZedBoard_Cam_3_130104.png

mt9d111_inf 信号の+記号をクリックすると、グループ化した信号が展開されて見える。
ZedBoard_Cam_4_130104.png

これをどのように表示しているかというと、最初に、IO_INTERFACE でmt9d111_inf を定義する(多分)

IO_INTERFACE IO_IF = mt9d111_inf



PORTをIO_IF = mt9d111_inf でグループ化して、IO_ISで名前をつけるようだ。mt9d111_inf_axi_master_v2_1_0.mpd の自分で定義したPROT定義を下に示す。

#Example IO port
PORT init_done = "", DIR = I, IO_IF = mt9d111_inf, IO_IS = init_done
PORT wr_error = "", DIR = O, IO_IF = mt9d111_inf, IO_IS = wr_error
PORT pclk_from_pll = "", DIR = I, SIGIS = CLK, IO_IF = mt9d111_inf, IO_IS = pclk_from_pll
PORT pclk = "", DIR = I, SIGIS = CLK, IO_IF = mt9d111_inf, IO_IS = pclk
PORT xck = "", DIR =O, SIGIS = CLK, IO_IF = mt9d111_inf, IO_IS = xck
PORT href = "", DIR = I, IO_IF = mt9d111_inf, IO_IS = href
PORT vsync = "", DIR = I, IO_IF = mt9d111_inf, IO_IS = vsync
PORT cam_data = "", DIR = I, VEC = [7:0], IO_IF = mt9d111_inf, IO_IS = cam_data
PORT standby = "", DIR = O, IO_IF = mt9d111_inf, IO_IS = standby
PORT pfifo_overflow, DIR = O, IO_IF = mt9d111_inf, IO_IS = pfifo_overflow
PORT pfifo_underflow, DIR = O, IO_IF = mt9d111_inf, IO_IS = pfifo_underflow


下に、t9d111_inf_axi_master_v2_1_0.mpd のIO_INTERFACEの位置を示す図を貼っておく。
ZedBoard_Cam_6_130104.png
  1. 2013年01月04日 20:48 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

XPSでカスタムIPをAdd IPする時のダイアログに項目を追加する

XPSでカスタムIPをAdd IPする時にダイアログが出るが、そこに自分で設定したパラメータをダイアログで設定したいということでやってみた。
使用するカスタムIPは、現在作っている mt9d111_inf_axi_master.vhd とした。mt9d111_inf_axi_master.vhd では、C_DISPLAY_START_ADDRESS をgeneric の最後に定義している。これをAdd IPのダイアログに表示して、設定できるようにする。なお、カスタムIPのテンプレートは ar37425.zip を参照している
参照するマニュアルは、”Platform Specification Format Reference ManualEmbedded Development Kit (EDK) 14.1 UG642 (v14.1) April 24, 2012”(PDFです)で、Parameter に関しては41ページ目から書いてある。

1.最初に、私のHDD上では、Zynq-7000\ZedBoard\ZedBoard_CamDisp_wHDMI_144\ZedBoard_BitMap_DispCont_142.srcs\sources_1\edk\system\pcores\mt9d111inf_axi_master_v1_00_a\data フォルダにある mt9d111_inf_axi_master_v2_1_0.mpd に DISPLAY_START_ADDRESS の PARAMETER を追加する。

PARAMETER C_DISPLAY_START_ADDRESS = 0x10000000, DT = std_logic_vector(31 downto 0)


mt9d111_inf_axi_master_v2_1_0.mpd の下の辺りに追加した。

# Number of address bits to test before wrapping
PARAMETER C_OFFSET_WIDTH = 9, DT = integer
PARAMETER C_DISPLAY_START_ADDRESS = 0x10000000, DT = std_logic_vector(31 downto 0)

## Ports
PORT ACLK = "", BUS = M_AXI, DIR = I, SIGIS = CLK
PORT ARESETN = ARESETN, BUS = M_AXI, DIR = I, SIGIS = RST


2.同じフォルダにある mt9d111_inf_axi_master_v2_1_0.mui に C_DISPLAY_START_ADDRESS の項目を追加する。

    <!ENTITY C_OFFSET_WIDTH '
    <widget id="C_OFFSET_WIDTH">
        <key>C_OFFSET_WIDTH</key>
        <label>C_OFFSET_WIDTH</label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY C_DISPLAY_START_ADDRESS '
    <widget id="C_DISPLAY_START_ADDRESS">
        <key>C_DISPLAY_START_ADDRESS</key>
        <label>C_DISPLAY_START_ADDRESS</label>
        <tip></tip>
    </widget>
    '>
    
]>


次に、item にも C_DISPLAY_START_ADDRESS の項目を追加する。
ZedBoard_Cam_5_130104.png

これで、XPSでAdd IPすると、User タブに C_DISPLAY_START_ADDRESS の項目が追加された。
ZedBoard_Cam_3_130104.png
  1. 2013年01月04日 10:56 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0