FC2カウンター FPGAの部屋 2012年06月11日
FC2ブログ

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

FPGAの部屋

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

キャラクタROMをAXI4 Lite Slave として実装する3(IPをXPSプロジェクトに追加する)

キャラクタROMをAXI4 Lite Slave として実装する2(AXI4 Lite バスの勉強2)”の続き。

前回、AXI4 Liteバスのプロトコルを検討したので、実際にVerilog でキャラクタROMをAXI4 Liteバスに接続するIPを作ってみた。ファイル名は char_rom_axi_lite.v とした。使用するPlanAheadプロジェクトは、”XPS入りのPlanAhead14.1プロジェクトを作る1(プロジェクトの生成)”、”XPS入りのPlanAhead14.1プロジェクトを作る2(XPSの設定、インプリメント)”、”XPS入りのPlanAhead14.1プロジェクトを作る3(SDK)”で新規作成したXPSプロジェクト入りのPlanAheadプロジェクトを使用する。(PlanAhead14.1を使用している)

・”12.3 EDK、12.3 ISE - カスタム AXI IP コアの作成方法”に書いてあるar37425.zipをダウンロードした。

・ar37425\axi_lite_slave_v1_00_a フォルダをAtlys_EDK_test_PA\Atlys_EDK_test_PA.srcs\sources_1\edk\system\pcores にコピーした。

・フォルダ名をaxi_lite_slave_v1_00_a から char_rom_axi_lite_v1_00_a に変更した。

・Atlys_EDK_test_PA\Atlys_EDK_test_PA.srcs\sources_1\edk\system\pcores\char_rom_axi_lite_v1_00_a\data の下のファイル名を下図のように変更した。
AXI_Lite_Slave_5_120611.png

・char_rom_axi_lite_v2_1_0.mpd のBEGIN からの行を下のように変更した。

BEGIN char_rom_axi_lite

## Peripheral Options
OPTION IPTYPE = PERIPHERAL
OPTION IMP_NETLIST = TRUE
OPTION STYLE = HDL
OPTION DESC = CharROM AXI Lite Slave
OPTION LONG_DESC = Character ROM AXI4-Lite Slave
OPTION HDL = MIXED
OPTION RUN_NGCBUILD = FALSE


・char_rom_axi_lite_v2_1_0.pao の内容を下の2行に書き換えた。(コメントは残してあります)
lib char_rom_axi_lite_v1_00_a char_gen_rom.v verilog
lib char_rom_axi_lite_v1_00_a char_rom_axi_lite.v verilog

・PlanAheadプロジェクトを立ちあげて、XPSプロジェクトを起動した。まだ、IP Catalog のProject Local PCores -> USER にはCharROM AXI Lite Slave がエントリされていない。
AXI_Lite_Slave_6_120611.png

・XPSのProject メニューからRescan User Repositories を実行した。

・IP Catalog のProject Local PCores -> USER にCharROM AXI Lite Slave がエントリされた。
AXI_Lite_Slave_7_120611.png

・CharROM AXI Lite Slave を右クリックしてAdd IPした。

・Add IP Instance to Desgin ダイアログが出る。Yesボタンをクリックした。
AXI_Lite_Slave_8_120611.png

・XPS Core Config ダイアログが出るが壊れている。Cancelボタンをクリックした。
AXI_Lite_Slave_9_120611.png

やはり壊れていた。前にも”キャラクタ・ディスプレイ・コントローラをAXI4スレーブにする9(インプリメント1)”で XPS Core Config ダイアログが壊れていたが、C_USE_ADVANCED_PORTS のENTITYを追加した覚えがある。

ウィザードが先に進むので進めてからCharROM AXI Lite Slave を削除することにする。

・Instantiate and Connect IPダイアログが出るので、OKボタンをクリックした。
AXI_Lite_Slave_10_120611.png

・CharROM AXI Lite Slave が追加されたので、右クリックメニューからDelete Instance を選択する。

・Delete IP Instance ダイアログでDelete instance and all its connections(デフォルト)を選択して、OKボタンをクリックすると、CharROM AXI Lite Slaveが消えた。
AXI_Lite_Slave_11_120611.png

・Atlys_EDK_test_PA\Atlys_EDK_test_PA.srcs\sources_1\edk\system\pcores\char_rom_axi_lite_v1_00_a\data の char_rom_axi_lite_v2_1_0.mui にC_USE_ADVANCED_PORTS のENTITYを追加した。

    <!ENTITY C_S_AXI_RNG03_HIGHADDR '
    <widget id="C_S_AXI_RNG03_HIGHADDR">
        <key>C_S_AXI_RNG03_HIGHADDR</key>
        <label>Slave AXI RNG03 High Address </label>
        <tip></tip>
    </widget>
    '>
    <!ENTITY C_USE_ADVANCED_PORTS '
    <widget id="C_USE_ADVANCED_PORTS">
        <key>C_USE_ADVANCED_PORTS</key>
        <label>C_USE_ADVANCED_PORTS </label>
        <tip></tip>
    </widget>
    '>
]>


・XPSのProject メニューからRescan User Repositories を実行した。

・CharROM AXI Lite Slave を右クリックしてAdd IPした。Add IP Instance to Desgin ダイアログが出てから、XPS Core Config ダイアログが出た。今度はエラーはない。
AXI_Lite_Slave_12_120612.png

・XPS Core Config ダイアログのSystemタブで、S_AXI -> Slave AXI Supports Write の手のマークをクリックしてAutoを外してチェックを外した。CharROM AXI Lite Slave では、ReadのみでWriteは使用しないためだ。
AXI_Lite_Slave_13_120612.png

・前と同様に、Instantiate and Connect IPダイアログが出るので、OKボタンをクリックした。

・XPSプロジェクトにCharROM AXI Lite Slave が追加された。ポートの接続もされているし、アドレスも割り振られていた。
AXI_Lite_Slave_14_120612.png

AXI_Lite_Slave_15_120612.png

AXI_Lite_Slave_16_120612.png
  1. 2012年06月11日 05:41 |
  2. AX4 Lite Slave IPの作製
  3. | トラックバック:0
  4. | コメント:0