FC2カウンター FPGAの部屋 XPSのカスタムIPにCore Generatorで生成したIPのネットリストを追加する
FC2ブログ

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

FPGAの部屋

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

XPSのカスタムIPにCore Generatorで生成したIPのネットリストを追加する

カスタムIPに自分で作ったVHDLやVerilogのファイルを追加する方法は、ame_feb4さんに教えて頂いて、”AXIバスのEDKでキャラクタ・ディスプレイ・コントローラのカスタムIPを作る2”で行うことができた。

どうやったか?をもう一度おさらいすると、自分で作ったファイルを、system\pcores\[カスタムIP名]\data\[カスタムIP名].paoファイルに追加で登録した。
前回は、CharDispCtrler_SP605.vの下のHDLファイル名を、pcores -> chardispc_v1_00_a -> data -> chardispc_v2_1_0.pao に追加した。下に、chardispc_v2_1_0.paoの内容を示す。

##############################################################################
## Filename: H:/HDL/FndtnISEWork/Spartan6/SP605_AXI_CharDispCtrler/system/pcores/chardispc_v1_00_a/data/chardispc_v2_1_0.pao
## Description: Peripheral Analysis Order
## Date: Sat Jul 30 05:47:37 2011 (by Create and Import Peripheral Wizard)
##############################################################################

lib proc_common_v3_00_a all
lib axi_lite_ipif_v1_01_a all
lib chardispc_v1_00_a user_logic vhdl
lib chardispc_v1_00_a chardispc vhdl
lib chardispc_v1_00_a char_gen_rom.v verilog
lib chardispc_v1_00_a CharDispCtrler.v verilog
lib chardispc_v1_00_a CharDispCtrler_SP605.v verilog
lib chardispc_v1_00_a dcm_inst.vhd vhdl
lib chardispc_v1_00_a disp_timing.v verilog
lib chardispc_v1_00_a frame_buffer.v verilog
lib chardispc_v1_00_a freqdiv.vhd vhdl
lib chardispc_v1_00_a One_Transaction_SCCB.vhd vhdl
lib chardispc_v1_00_a SCCB_Reg_Controller.vhd vhdl
lib chardispc_v1_00_a SCCB_reg_values_ROM.vhd vhdl


VHDLファイルはpcores -> chardispc_v1_00_a -> hdl -> vhdlフォルダに追加した。Verilogファイルはpcores -> chardispc_v1_00_a -> hdl -> verilogフォルダを作成して、そこに入れた。

次に、今回は、Core Generatorで生成したIPも使用する。それをカスタムIPにどうやって入れるのかを調べた。”Xilinx IP wizard help”が検索できた。(これは記述が間違っていたことがあとで分かった。MDDファイルでなくてMPDファイルだった)

やり方をまたame_feb4さんに教えていただいた。(いつもありがとうございます)
それは、”9.1i EDK - What should I do to instantiate a netlist core in my custom peripheral?”だった。
これによると、

1.MPDファイルに”OPTION STYLE = MIX”と宣言する。

OPTION IPTYPE = PERIPHERAL
OPTION IMP_NETLIST = TRUE
OPTION HDL = VHDL
OPTION IP_GROUP = MICROBLAZE:PPC:USER
OPTION CORE_STATE = DEVELOPMENT
OPTION STYLE = MIX


2.system\pcores\[カスタムIP名]に、netlistフォルダを作る。

3.system\pcores\[カスタムIP名]\dataフォルダに、[カスタムIP名].bbdを新規作成する。

4.[カスタムIP名].bbdファイルに、使用するネットリストファイルのリストを入力する。

FILES
cam_cont_afifo.ngc, cam_data_fifo.ngc, disp_netlist.edn


5.カスタムIPに含めるネットリストファイルをすべて、system\pcores\[カスタムIP名]\netlistフォルダに入れる。

(注)
これだけでは論理合成でエラーになってしまう。.ngc ファイルのVerilog かVHDLファイルをフォルダ(Verilog またはVHDL) に追加して、.pao ファイルにそのHDLファイルのエントリを追加する必要がある。



だそうだ。

実際にCORE GeneratorでIPを作成すると、ngcも作られる。CORE Generatorで生成されたIPは[プロジェクトフォルダ]\ipcore_dirフォルダにある。cam_cont_afifoを生成した時の、ipcore_dirフォルダを下に示す。
Spa3A_SKit_OV7670_62_110902.png

Project Navigatorに通常は、cam_cont_afifo.xcoがプロジェクトに入っていて、インプリメントもシミュレーションもできるが、インプリメント時にはcam_cont_afifo.ngcをプロジェクトに入れることができる。
Spa3A_SKit_OV7670_63_110902.png

これで、CORE Generatorで生成されたIPを、XPSのカスタムIPの一部として使用することができる。
  1. 2011年09月02日 05:04 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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