0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教你打包一个自己的Vivado IP核

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-16 16:21 2391次阅读

写在前面
模块复用是逻辑设计人员必须掌握的一个基本功,通过将成熟模块打包成IP核,可实现重复利用,避免重复造轮子,大幅提高我们的开发效率。

接下来将之前设计的串口接收模块和串口发送模块打包成IP核,再分别调用这两个IP核,构成串口接收--发送循回,依次验证IP核打包及调用是否成功。

源码在这:串口(UART)的FPGA实现
Vivado版本:Vivado 2019.2
开发板:xc7a35tfgg484-2

打包
打包串口发送模块uart_tx
1、首先打开发送模块的VIVADO工程,确保其编译无误(最好进行仿真验证、上板验证保证其功能正确性),如下:

pYYBAGIMo_yABsTrAAMHlQrWHB4743.png

2、点击Tools-----create and package new ip

pYYBAGIMpACAWISXAAMBQAPDSzQ092.png

3、点击Next

poYBAGIMpAWAPR_1AAD9jNhcBfw163.png

4、选择选项1,点击Next,各选项含义:

1---将当前工程打包为IP核
2----将当前工程的模块设计打包为IP核
3----将一个特定的文件夹目录打包为IP核
4----创建一个带AXI接口的IP核

pYYBAGIMpAaAB45PAAEqFIqEUzE531.png

5、选择IP存放路径,建议专门建一个文件夹来管理所有建立的IP核,然后点击Next

pYYBAGIMpAiAV82jAACNaOVmEtw253.png

6、点击OK,然后点击NEXT,会自动创建一个新工程,用来生成IP核

poYBAGIMpAqAdgdcAABWNls8zrM557.png

pYYBAGIMpAyAMlAnAAECdtH1svM113.png

7、新生成的IP核打包工程如下:

poYBAGIMpA-AbvvmAAMt5Lrk1r4613.png

在右边的界面可以配置一系列参数:

Identification:主要是一系列信息,如IP名字,开发者、版本号等。因为本文仅作示范,所以我这边所有信息都没改

compatibility:兼容的系列,这里根据自己需求添加所需要的系列芯片就好了。我这边保持默认

file groups:IP核的文件架构,可以添加或删除文件。比如添加仿真文件、例化文件,说明文件等。我这边保持默认

Customization Parameters:定制化参数。可对参数进行自己的配置,如参数名称啊,类型啊,自定义区间,可选列表等。

poYBAGIMpBGAV_3iAADLTjk43Ak600.png

点击BPS----edit parameter,对参数进行配置(该参数为串口模块的波特率)

pYYBAGIMpBOAMp8zAADz-DjP5Dk836.png

将格式Format改为long类型,再勾上Specify Range,Type改成List of values,再添加3个参数(仅作示范)--4800、9600、115200。再将默认值Default value改为9600。这样就将该参数配置成了可选参数,默认9600,可选值:4800、9600、115200。

再使用同样的方法将参数CLK_FRE(模块时钟频率)改为long类型,默认50000000.

pYYBAGIMpBWAf6IWAADDZbwsRHk284.png

pYYBAGIMpBeAASzUAADAdXjhvpc930.png

Ports and Interfaces:这里展示了IP的接口,可根据需求添加、删除接口或者总线。

poYBAGIMpBqAVHwLAADGsXDuKJY836.png

需要说明的是,这里很容易报警告:

poYBAGIMpByAVN96AADVip-X2Bo219.png

这个警告是因为IP核打包器在设计中推断出了时钟端口或是复位端口。例如:如果信号名称包含以下任何一种:[ ]clk,[ ]clkin, [ ]clock[ ], [ ]aclk 或 [ ]aclkin,那么IP打包器就会为将其判断成为时钟接口。被自动判断出的接口,IP打包器会倾向于认为你使用AXI接口来处理这个信号,因为IP打包器工具主要是针对于AXI接口。所以如果你的IP中并不使用AXI总线,这两条警告可以直接忽略,在实际的IP中不会有任何的影响。

Addressing and Memory:地址分配和储存映射。本设计用不到,直接跳过,感兴趣的可以看XILINX的手册UG1118。

Customization GUI:参数设置的GUI界面。可以对以后配置IP核的界面做一个修改。可以看到,红框内的参数都是我设置好的默认值。

pYYBAGIMpB6AGuo0AADNicZ4bY8834.png

Review and Package:IP核总览及生成界面。点击Package IP完成IP打包

poYBAGIMpCGASAbKAADJCoYaKPM740.png

IP核成功打包,如下:

pYYBAGIMpCKAMgy7AABCLqYzQuE836.png

打包串口接收模块uart_rx
使用同样的方法把串口接收模块也打包成IP。

调用
接下来分别调用这两个IP核,构成串口接收--发送循回,依次验证IP核打包及调用是否成功。

首先新建一个工程,点击Settings----IP----Repository, 添加IP核所在路径:

poYBAGIMpCWAPBbYAADnM0_GBRA751.png

点击 create block design,新建一个BD模块,建议名称与项目名称一致。

poYBAGIMpCeAF31_AACZtKO5_hU045.png

在BD编辑窗口添加IP,搜uart就出现了我们打包的两个IP核:

pYYBAGIMpCmAMujaAACdJivCH-Y898.png

分别添加串口发送模块和串口接收模块:

pYYBAGIMpCyAGXefAACtd6YcwbU890.png

把对外的四个端口(clk,rst,txd,rxd)引出来,右击sys_clk,点击make external ,其他三个端口操作一致;再把对应的线连接,然后点击regenerate layout:

pYYBAGIMpC-AIkTnAAC89O6UruY167.png

这里我们的 Block Design 就设计完成了,在 Diagram 窗口空白处右击,然后选择“Validate Design” 验证设计。验证完成后弹出对话框提示“Validation Successful”表明设计无误,点击“OK”确认。最后按 快捷键“Ctrl+S”保存设计。

接下来在 Source 窗口中右键点击 Block Design 设计文件“system.bd”,然后依次执行“Generate Output Products”和“Create HDL Wrapper”。

然后添加管脚约束,生成bit流文件。

测试
下载bit流文件,使用串口调试助手发送一包数据给FPGA,理论上FPGA马上回相同的信息给串口调试助手(此时串口波特率9600):

pYYBAGIMpDKAPPtpAACk8dKg9yQ410.png

返回设计阶段,点击IP核框图,将波特率改为115200,如下:

poYBAGIMpDOAEBBxAAB3-PzuGh4305.png

重新生成并下载bit流文件,使用串口调试助手发送一包数据给FPGA,理论上FPGA马上回相同的信息给串口调试助手(此时串口波特率115200):

pYYBAGIMpDaASCZ5AACj6FlWebA200.png

参考资料:
UG1118----Creating and Packaging Custom IP

米联客----XILINX 7 系列 FPGA 基础入门

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IP核
    +关注

    关注

    4

    文章

    335

    浏览量

    50049
  • Vivado
    +关注

    关注

    19

    文章

    820

    浏览量

    67577
收藏 人收藏

    相关推荐

    文详解Video In to AXI4-Stream IP

    Video In to AXI4-Stream IP用于将视频源(带有同步信号的时钟并行视频数据,即同步sync或消隐blank信号或者而后者皆有)转换成AXI4-Stream接口形式,实现了接口转换。该IP还可使用VTC
    的头像 发表于 04-03 09:28 188次阅读
    <b class='flag-5'>一</b>文详解Video In to AXI4-Stream <b class='flag-5'>IP</b><b class='flag-5'>核</b>

    Vivado FIR IP核实现

    Xilinx的FIR IP属于收费IP,但是不需要像 Quartus那样通过修改license文件来破解。如果是个人学习,现在网络上流传的license破解文件在破解Vivado的同
    的头像 发表于 03-01 14:44 1071次阅读
    <b class='flag-5'>Vivado</b> FIR <b class='flag-5'>IP</b>核实现

    ALINX发布100G以太网UDP/IP协议栈IP

    AX14-Stream接口,完美适配UltraScale+/Zynq UltraScale+系列FPGA器件。 这创新成果为用户提供了快速可靠、低成本且高性能的解决方案,显著缩短了产品上市时间。该IP支持
    的头像 发表于 01-07 11:25 492次阅读

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780E的LuatOS开发实战,我将手把手教你搞定数据打包解包。
    的头像 发表于 12-03 11:17 440次阅读
    Air780E模组LuatOS开发实战 —— 手把手<b class='flag-5'>教你</b>搞定数据<b class='flag-5'>打包</b>解包

    怎么集齐7云平台?本文教你!

    每家云平台都有自己的协议,工程师要移植不同的SDK代码或基于各家的手册文档对接不同的协议,看着都头大,该如何集齐7云平台?本文教你!本文将以Air780E+LuatOS作为示例,教你
    的头像 发表于 12-02 14:41 718次阅读
    怎么集齐7<b class='flag-5'>个</b>云平台?本文<b class='flag-5'>教你</b>!

    从零到:搭建属于自己的海外IP代理池

    从零到搭建属于自己的海外IP代理池是复杂但具有挑战性的任务,它涉及多个步骤和考虑因素。
    的头像 发表于 11-15 08:15 846次阅读

    vivado导入旧版本的项目,IP核心被锁。

    vivado导入其他版本的项目的时候,IP被锁,无法解开,请问该如何解决。 使用软件:vivado 2019.2 导入项目使用版本:vivado
    发表于 11-08 21:29

    Vivado中FFT IP的使用教程

    本文介绍了Vidado中FFT IP的使用,具体内容为:调用IP>>配置界面介绍>>IP
    的头像 发表于 11-06 09:51 2515次阅读
    <b class='flag-5'>Vivado</b>中FFT <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用教程

    芯驿电子 ALINX 推出全新 IP 产品线,覆盖 TCP/UDP/NVMe AXI IP

    在创新加速的浪潮中,为更好地响应客户群需求, 芯驿电子 ALINX 推出全新 IP 产品线 ,致力于为高性能数据传输和复杂计算需求提供 高带宽、低延迟 的解决方案。发布的第IP
    的头像 发表于 10-30 17:39 598次阅读
     芯驿电子 ALINX 推出全新 <b class='flag-5'>IP</b> <b class='flag-5'>核</b>产品线,覆盖 TCP/UDP/NVMe AXI <b class='flag-5'>IP</b> <b class='flag-5'>核</b>

    芯驿电子ALINX推出全新IP产品线

    在创新加速的浪潮中,为更好地响应客户群需求,芯驿电子 ALINX 推出全新 IP 产品线,致力于为高性能数据传输和复杂计算需求提供高带宽、低延迟的解决方案。发布的第IP
    的头像 发表于 10-30 11:53 470次阅读
    芯驿电子ALINX推出全新<b class='flag-5'>IP</b><b class='flag-5'>核</b>产品线

    Xilinx DDS IP的使用和参数配置

    用RAM实现DDS,从原理上来说很简单,在实际使用的时候,可能没有直接使用官方提供的IP来的方便。这个博客就记录下,最近使用到的这个
    的头像 发表于 10-25 16:54 2212次阅读
    Xilinx DDS <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用和参数配置

    如何申请xilinx IP的license

    在使用FPGA的时候,有些IP是需要申请后才能使用的,本文介绍如何申请xilinx IP的license。
    的头像 发表于 10-25 16:48 848次阅读
    如何申请xilinx <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license

    FPGA的IP使用技巧

    仿真,需要经过综合以及布局布线才能使用。 IP的优点在于其灵活性高、可移植性强,允许用户自配置。然而,其缺点在于对模块的预测性较低,在后续设计中存在发生错误的可能性,有定的设计风险。 选择合适
    发表于 05-27 16:13

    关于FPGA IP

    对于深入学习使用FPGA的小伙伴们,特别是些复杂的、大规模的设计应用,适宜的IP核对开发能起到事半功倍的作用。IP的概念与我们sdk里库的概念相似。
    发表于 04-29 21:01

    Vivado 使用Simulink设计FIR滤波器

    vivado工程 System Generator提供了几种导入方法: 1、直接生成hdl网表文件。 生成的.v或.vhd文件直接例化dsp的IP,用户可直接将代码文件添加至
    发表于 04-17 17:29