FPGA基础入门篇(八) Vivado封装自定义IP及调用

FPGA基础入门篇(八) Vivado封装自定义IP及调用
在FPGA实际的开发中,官方提供的IP并不是适用于所有的情况,需要根据实际修改,或者是在自己设计的IP时,需要再次调用时,我们可以将之前的设计封装成自定义IP,然后在之后的设计中继续使用此IP。因此本次详细介绍使用VIvado来封装自己的IP,并使用IP创建工程。

一、IP的创建
  1. 首先新建工程。
    如前面部分介绍的工程创建,完成代码的设计、输入,并在功能仿真或时序仿真完全正确的情况下。
    按如下步骤执行:
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  2. 选择要存放的位置,这一步很重要,可以存放在以后专门自定义的IP文件夹内,方便以后添加和管理查看。
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  3. 然后会弹出如下封装IP的界面,按如下执行Package IP
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  4. 至此,我们IP就封装好了。可以打开我们IP的文件夹,包括三个文件,src是源代码文件。
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
二、IP的使用

本次设计采用block design来使用自定义的IP。

  1. IP的添加。
    1.新建一个vivado工程。
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    按照上面的步骤添加自定义的IP。
  2. 创建一个BD文件
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  3. 使用自定义的IP
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    添加完之后如下:
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  4. 将引脚引出并重新命名,具体操作选中相应的管脚,右键选择make external
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  5. 然后右键选择general output product
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  6. 然后右键选择 create HDL wrapper。
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
    FPGA基础入门篇(八) Vivado封装自定义IP及调用
  7. 最后添加约束文件并进行综合编译产生bit流,然后上班调试。