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

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

3天内不再提示

如何使用MicroBlaze调用AXI IP核详细解析

FPGA之家 来源:FPGA2嵌入式 作者:浅搁 2021-04-27 11:17 次阅读

在一个项目中,当你使用microblaze作为控制器来进行系统调度的时候,一般是建议将所有模块封装成AXI形式的IP核,这样好管理,也容易调试。不过在初期的时候是不建议这样做的,因为你的模块并没有完全被验证是没问题的,所以还是使用.v文件,等后面这一功能验证通过,再把它封装成IP核形式。

1. AXI IP核简介

用过Microblaze或者看例程的人肯定都知道,Xilinx提供了很多AXI形式的IP核,像常用的UART、IIC、SPI等IP核。我们只要把他们在画布里调出来,然后使用自动连接形式,便能把对应接口连接起来,接着在软件上调用其相应的函数便可以工作了。

7c9b8938-a67e-11eb-aece-12bb97331649.jpg

但是当我们自己封装了一个AXI形式的IP核后,又该怎么去使用呢?这不是官方IP,没有相应的函数呀?不知道大家是否有印象,上一篇文章介绍IP封装的时候说过,封装成AXI形式的IP核,会生成一些东西,如下图所示,这个可千万别去删,大有用处的。

7ca6f39a-a67e-11eb-aece-12bb97331649.png

里面的drivers这个文件夹其实放的就是AXI的驱动函数。例如我们生成一个AXI的IP核(红框处)

7cb481c2-a67e-11eb-aece-12bb97331649.jpg

编译通过后生成软核工程,可以看到,我们自己加入的IP核是有被关联进来的。在“Axi_Device_DNA_v1_0”这个文件夹下包含有.c和.h文件,这个就是我们添加的IP核对应的驱动,它和iic、定时器、uart等IP核在同一个库里。这些都是IP核必须使用到的函数文件。

7d47608c-a67e-11eb-aece-12bb97331649.png

2. AXI IP核使用

看见自制的IP核都能给你生成驱动函数是不是觉得很高级,很爽呢!如果这样想那你就确实too young too simple了。打开它的.c和.h文件给你看看吧。

7d50073c-a67e-11eb-aece-12bb97331649.jpg

寄存器定义

7d7e5e20-a67e-11eb-aece-12bb97331649.png

获取DNA数据高位、低位数据的函数

80828c18-a67e-11eb-aece-12bb97331649.jpg

读写函数

是的,就只有这些,没有了!所以别以为能像IIC之类的IP核一样,会给你很全的函数,让你一次写一大串或读一大串数据的,如果真能根据不同IP功能给你定制不同函数,那就智能到逆天了···

不过人家都给你读写寄存器的函数和寄存器的定义,也就已经够了,都说下层基础决定上层建筑,有了这两个基本函数,你想自己做什么功能还不行?MCU控制的本质不也就是读写对应的寄存器,偷懒也得有个度的哈哈~就像这样,自己封装个函数就行了。

808f3ef4-a67e-11eb-aece-12bb97331649.png

当然,你也可以不用Xilinx给你生成的读写函数,自己写也是可以的,不过不建议这么做,毕竟人家都给了,一方面可以给你节省编码时间,另一方面也保证了函数的稳定性,避免开发出错。

3. 总结

在封装成AXI IP 核时会有一个顶层的AXI时序代码,这个用户一定要熟悉,并且对应的寄存器要设置好,这样使用起来才不会有错误。不然容易出现寄存器读写不成功或者操作错寄存器导致数据不对。总之还是一句话,实践出真知,想了解深入得去用了才知道才会使用。
编辑:lyn

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

    关注

    70

    文章

    2121

    浏览量

    119372
  • MicroBlaze
    +关注

    关注

    3

    文章

    66

    浏览量

    21436
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49041

原文标题:使用MicroBlaze调用AXI IP核

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    XILINX FPGA IPAXI Traffic Generator

    AXI Traffic Generator IP 用于在AXI4和AXI4-Stream互连以及其他AXI4系统外设上生成特定序列(流量)。
    的头像 发表于 11-23 16:03 824次阅读
    XILINX FPGA <b class='flag-5'>IP</b>之<b class='flag-5'>AXI</b> Traffic Generator

    FPGA新IP学习的正确打开方式

    步骤,您可以更好地理解和使用Xilinx的IP。 二、其它方式 可以通过百度或google搜索这个IP的相关博客,看看网上大牛们是怎么用和理解这个IP的,一般都会有
    发表于 11-17 11:09

    AXI传输数据的过程

    AXI4为例,有AXI full/lite/stream之分。 在Xilinx系列FPGA及其有关IP核中,经常见到AXI总线接口,AXI
    的头像 发表于 10-31 15:37 463次阅读
    <b class='flag-5'>AXI</b>传输数据的过程

    LogiCORE IP AXI UART 16550内核简介

    LogiCORE IP AXI 通用异步接收发送器 (UART) 16550 连接到高级微控制器总线架构 (AMBA) AXI,为异步串行数据传输提供控制器接口。该软 IP 核旨在通过
    的头像 发表于 10-16 11:02 2156次阅读
    LogiCORE <b class='flag-5'>IP</b> <b class='flag-5'>AXI</b> UART 16550内核简介

    LogiCORE JTAG至AXI Master IP核简介

    LogiCORE JTAG至AXI Master IP核是一个可定制的核,可生成AXIAXI总线可用于处理和驱动系统中FPGA内部的AXI信号。AXI总线接口协议可通过
    的头像 发表于 10-16 10:12 478次阅读
    LogiCORE JTAG至<b class='flag-5'>AXI</b> Master <b class='flag-5'>IP</b>核简介

    什么是AXIAXI如何工作?

    Xilinx 从 Spartan-6 和 Virtex-6 器件开始采用高级可扩展接口 (AXI) 协议作为知识产权 (IP) 内核。Xilinx 继续将 AXI 协议用于针对 7 系列和 Zynq-7000 All Progr
    的头像 发表于 09-27 09:50 680次阅读
    什么是<b class='flag-5'>AXI</b>?<b class='flag-5'>AXI</b>如何工作?

    LogiCORE IP AXI4-Stream FIFO内核解决方案

    LogiCORE IP AXI4-Stream FIFO内核允许以内存映射方式访问一个AXI4-Stream接口。该内核可用于与AXI4-Stream
    的头像 发表于 09-25 10:55 596次阅读
    LogiCORE <b class='flag-5'>IP</b> <b class='flag-5'>AXI</b>4-Stream FIFO内核解决方案

    基于Xilinx FPGA AXI-EMC IP的EMIF通信测试

    外部存储器接口( EMIF )通信常用于FPGA和DSP之间的数据传输,即将FPGA作为DSP的外部SRAM、或者协同处理器等。Xilinx提供了AXI-EMC IP核,将其挂载到AXI总线用于
    的头像 发表于 08-31 11:25 2745次阅读
    基于Xilinx FPGA <b class='flag-5'>AXI</b>-EMC <b class='flag-5'>IP</b>的EMIF通信测试

    MicroBlaze串口设计(附源工程)

    ”。 设计原理 本系统中,Basys3的MicroBlaze模块调用基于AXI协议的UART IP,通过
    发表于 08-24 20:13

    MicroBlaze MCS和MicroBlaze的区别在哪?

    在Block Design中查找IP时输入Microblaze,就会发现下面几种IP,我们常规使用的就是第一个IP,是一个可以自定义外设的软核,但是第三个
    的头像 发表于 08-23 09:07 751次阅读
    <b class='flag-5'>MicroBlaze</b> MCS和<b class='flag-5'>MicroBlaze</b>的区别在哪?

    自定义AXI-Lite接口的IP及源码分析

    在 Vivado 中自定义 AXI4-Lite 接口的 IP,实现一个简单的 LED 控制功能,并将其挂载到 AXI Interconnect 总线互联结构上,通过 ZYNQ 主机控制,后面对 Xilinx 提供的整个
    发表于 06-25 16:31 2043次阅读
    自定义<b class='flag-5'>AXI</b>-Lite接口的<b class='flag-5'>IP</b>及源码分析

    简单讲解AXI Interconnect IP核的使用方法

    最近需要用到AXI接口的模块,xilinx的IP核很多都用到了AXI总线进行数据和指令传输。如果有多个设备需要使用AXI协议对AXI接口的B
    的头像 发表于 06-19 15:45 5308次阅读
    简单讲解<b class='flag-5'>AXI</b> Interconnect <b class='flag-5'>IP</b>核的使用方法

    AMD MicroBlaze中通过AXI Timer获取时间戳

    硬件的Vivado Block design设计中,添加AXI Timer
    的头像 发表于 06-08 09:21 411次阅读

    FPGA AXI4协议学习笔记(三)

    上文FPGA IPAXI4协议1_信号说明把AXI协议5个通道的接口信息做了说明,本文对上文说的信号进行详细说明。
    的头像 发表于 05-24 15:06 718次阅读
    FPGA <b class='flag-5'>AXI</b>4协议学习笔记(三)

    Video In to AXI4-Stream IP核知识介绍

    大家好!今日分享一些关于Video In to AXI4-Stream IP 核的知识。在具体学习IP核的过程中,我也将分享一些关于如何看xilinx英文文档的技巧。
    的头像 发表于 05-18 14:55 1054次阅读
    Video In to <b class='flag-5'>AXI</b>4-Stream <b class='flag-5'>IP</b>核知识介绍