最近在整SOPC,在xilinx的EDK开发环境中开发自己的IP,自己的IP中又要调用xilinx ISE中的一些IP,例如ram、rom、clock等,一直苦于不知道如何调用,找了些资料,经过实践,在此和大家共享。
(1)在ISE下,使用core generator,可以得到xilinx的IP的*.v和*.ngc 文件,将这两个文件拷贝出来;
(2)在EDK下使用“Create or Import Peripheral …”可以定制用户自己的IP(具体过程请参照相关资料),在生成用户IP core目录下,至少包含“data”“hdl”这两个目录。在“data”目录下有以下文件*.pao、*.mpd文件。*.pao记录的是用户IP所要使用到的库,*.mpd定义的是用户IP模块相关的接口等信息。
(3)将core generator产生的.v文件拷贝到/hdl/verilog目录下(如果是.vhd文件则拷贝到/hdl/vhdl目录下)(注意:貌似不能在/hdl/verilog或/hdl/vhdl目录下添加自己的子目录,并把.v或.vhd文件拷贝到子目录下,否则综合时会报找不到文件的错);
(4)在*.pao文件中填写使用到的库,把使用到的*.v或者*.vhd文件的信息填写进去,书写格式可以随便找个.pao文件来参考,一看就会,这里不多做解释;
(5)在*.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
(6)在用户IP core目录下新建netlist目录,将core generator产生的*.ngc网表文件拷贝到netlist目录下;
(7)在XPS(或ISE)中新建一个文件,文件后缀为.bbd(black box definition),记录使用到的网表文件,文件书写格式如下:
FILES
blackbox1.ngc, blackbox2.ngc, blackbox3.edn
将*.bbd(*为用户IP的名字)文件保存到data目录下,和*.pao、*.mpd文件放一块。
补充:有些第三方公司做好的IP core的data目录下还包含*.prj和*.mui文件,*.prj文件记录的是IP core用到的库的位置,你需要把core generator产生的*.v文件的位置也写进去,*.ngc不用写。*.mui文件不用理会。
至此,设置完成,你可以在你的user logic中调用core generator产生的IP核了。
参考:http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/platform_studio/ps_p_ipw_instantiating_netlist_core_in_custom_peripheral.htm
文章评论(0条评论)
登录后参与讨论