【JokerのZYNQ7020】USER_IP。

软件环境:vivado 2017.4        硬件平台:XC7Z020 


 如题目,今天主要是记录下用户自定义IP核的使用方式,以自建IP核的方式,控制4个LED的闪烁。


 vivado 2017.4 -------->Add design sources 代码如下。

module USER_IP_TEST(
    input CLK_i,//100MHZ
    input RSTn_i,
    output reg [3:0]LED_o
    );
    
    reg [31:0]C0;
    
    always @(posedge CLK_i)
        if(!RSTn_i)
        begin
            LED_o <= 4'b0001;
            C0 <= 32'h0;
        end
        else
        begin
            if(C0 == 32'd49_999_999)//1s
            begin
                C0 <= 32'h0;
                if(LED_o == 4'b1000)
                    LED_o <= 4'b0001;
                else LED_o <= LED_o << 1;
            end
            else 
            begin 
                C0 <= C0 + 1'b1; 
                LED_o <= LED_o; 
            end
        end
endmodule

然后把代码封成IP核,Tools --------> Create and Package New IP,NEXT

 设置USER_IP的保存路径。

NEXT --------> OK --------> Finish。完成后的界面如下,选择Review  --------> Package IP即完成自建IP核。

 


下面是如何使用自建的IP核。在需要用自定义的VIVADO工程里,Project manager-------->IP-------->Repositories,单击然后单击红框处的加号,定位到刚才自建IP核保存的目录,它会自动识别可以加载的IP核,弹出如下对话框。

疯狂OK以后,去IP Catalog下直接搜索或者diagram下点加号搜索就能调用到啦。

 别忘了添加IO管脚约束文件。

set_property PACKAGE_PIN J16 [get_ports {LED_o[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[0]}]

set_property PACKAGE_PIN K16 [get_ports {LED_o[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[1]}]

set_property PACKAGE_PIN G15 [get_ports {LED_o[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[2]}]

set_property PACKAGE_PIN H15 [get_ports {LED_o[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED_o[3]}]

联接好模块之后,最后依旧是老操作,Generate the output products,Create a HDL wrapper,Generate Bitstream,Export Hardware(注意勾选include biestream),最后launch SDK进行测试。

 因为我自己在前面建立的自定义IP核中对IO口的操作是在PL端直接完成的,只需要有时钟就行,所以进SDK以后,建一个空应用,直接DEBUG,有时钟产生就能看到LED闪烁了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值