zoukankan      html  css  js  c++  java
  • S02_CH04_User_IP实验Enter a post title

    S02_CH04_User_IP实验

    4.1 创建IP

    在之前的教程中,我们通过MIO与EMIO来控制LED,所使用的也是官方的IP,实际当中,官方提供的IP不可能涵盖到方方面面,用户需要自己编写硬件描述语言,然后将其封装成IP来使用,本节就将详细的讲解如何在VIVADO中创建用户自定义的IP。

    Step1:打开VIVADO软件,新建一个工程。

    Step2:单击Add Source,选择Add or Creat design Sources,然后单击Next。

    Step3:单击Create File,输入文件名,单击OK。

    Step4:单击Finish,完成Verilog文件的创建。

    Step5:将以下代码复制入文本编辑区内。

    module LED_ML(

    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

    Step6:单击Tools—>Create and package IP,单击Next。

    Step7:选择IP的保存路径,单击Next。

    Step8:单击Finish完成封装。

    4.2 调用自定义IP

    Step1:另外新建一个VIVADO工程,根据自己的开发板正确配置芯片型号。

    Step2:在Project manager区中单击Project settings。

    Step3:选择IP设置区中的repository manager,。

    Step:4:单击+号图标,将上一节封装的IP的路劲存放进去,单击OK。

    Step5:新建一个BD文件,输入文件名,完成创建。

    Step6:向BD文件中添加一个ZYNQ Processing system,根据自身硬件完成IP的配置。

    Step7:单击添加IP图标,输入上一节我们自定义IP的模块名,将其添加入BD文件中。

    Step8:按如下电路图完成模块间的连线。

    Step9:右键单击Block文件,文件选择Generate the Output Products。

    Step10:右键单击Block文件,选择Create a HDL wrapper,根据Block文件内容产生一个HDL 的顶层文件,并选择让vivado自动完成。

    Step11:选中Project manager,然后右单击Constraints,选择Add Sources。

    Step12:输入文件名,完成创建,将上一章EMIO的约束文件copy进去。

    Step11:产生bit文件。

    4.3 导入到SDK

    由于自定义的IP的时钟输入来自于ZYNQ Processing system,源时钟是使用的PS的时钟,因此需要启动SDK整个系统才能启动,而自定义IP不需要由SDK进行配置,因此我们可以按照前几节讲过的内容,在SDK端建立一个Hello World工程跑起来就能让自定义IP跑起来。

    Step1:创建一个Hello World工程。

    Step2:右击工程,选择Debug as ->Debug configuration。

    Step3:选中system Debugger,双击创建一个系统调试。

    Step7:设置系统调试。

    Step8:单击窗口上的运行按钮,运行程序,可看到LED的流水操作。

    4.4 本章小结

    本章主要介绍了如下在VIVADO下创建一个自定义的IP,内容比较简单,需要注意的是如果工程中使用的源时钟是为PS时钟的话,是需要启动SDK系统才能正常工作的,若是系统使用到了ZYNQ Processing System,则系统使用的是PS时钟,这是一个判断的依据。在ZYNQ的开发中,创建自定义IP是一项基本功,还未熟练掌握的要勤加练习。

  • 相关阅读:
    sql2000/2005获取表的列SQL文
    SQL Server未公开的两个存储过程
    HNOI2008 玩具装箱
    noi2004 郁闷的出纳员
    狼抓兔子(平面图转对偶图求最短路)
    pku1917 Automatic Poetry
    幸福的道路
    闲话电子商店(eshop)的设计和经营2
    基金清仓,晚上欢聚
    早上想来想去,把自己的基金卖了1/5
  • 原文地址:https://www.cnblogs.com/milinker/p/6473641.html
Copyright © 2011-2022 走看看