1.关于IP封装
不能直接在Tools-Creat and Package 中包装文件夹,否则在IP Catalog会显示helper core不能例化
解决:先把RTL文件引入到工程中,选择在当前文件工程中封装IP,这样封装出来的IP是可以调用的。
IP设置中选择了Archive选项还会产生一个压缩包,里面主要包含顶层.v,.xci,.xml文件,便于其他使用者的调用
2.关于IP的调用
在一个新的工程中调用时,自己封装的IP不会出现,需要在IP Catalog中右键Repository添加封装目录
用户封装的IP在User Repository中可以找到,要添加IP应在IP Catalog里面双击,不要用add source的方式
3.关于封装的IP文件
以下是关于IP的几种文件格式:
(1).xci
<xilinx:configElementInfo
xilinx:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ"
xilinx:valueSource="user"/>
这是IP属性的配置文件,导入工程时有一个组件图标,可以认为这个文件是IP的封装头文件
每次在IP Catalog配置添加完IP后就会跳出Generate Output Products,顶层文件为.xci,下面包含例化、综合(.dcp)、仿真、日志文件
(2) .veo
mmcm instance_name
(
// Clock out ports
.clk_out1(clk_out1), // output clk_out1
.clk_out2(clk_out2), // output clk_out2
// Status and control signals
.resetn(resetn), // input resetn
.locked(locked), // output locked
// Clock in ports
.clk_in1(clk_in1)); // input clk_in1
这是一个例化文件,verilog语法
(3) .vho
your_instance_name : reset_sys
PORT MAP (
slowest_sync_clk => slowest_sync_clk,
ext_reset_in => ext_reset_in,
aux_reset_in => aux_reset_in,
mb_debug_sys_rst => mb_debug_sys_rst,
dcm_locked => dcm_locked,
mb_reset => mb_reset,
bus_struct_reset => bus_struct_reset,
peripheral_reset => peripheral_reset,
interconnect_aresetn => interconnect_aresetn,
peripheral_aresetn => peripheral_aresetn
);
这是一个例化文件,VHDL语法
(4)component.xml,典型命令为:
<spirit:name>../../../../Xilinx/practice/packaged_e203/e203_rtl/i2c_master_bit_ctrl.v</spirit:name>
这相当于是一个属性配置的目录文件,还要附上RTL文件才能完整地调用IP。
4.关于封装IP的Costomization Parameters 和 Addressing and Memory功能有待测试
Costomization Parameters:可以添加属性名称、类型、取值范围,但如何改变IP内部属性还需研究
5.要联合SDK开发,IP需要在block design中实现
(1)打开block design,添加封装好的IP
(2)Generate Outputs Products
(3)Creat HDL wrapper
只有放进bd里面才能Export Hardware,include bitstream