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
    +关注

    关注

    71

    文章

    2167

    浏览量

    121338
  • MicroBlaze
    +关注

    关注

    3

    文章

    68

    浏览量

    21551
  • IP核
    +关注

    关注

    4

    文章

    327

    浏览量

    49488

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

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

收藏 人收藏

    评论

    相关推荐

    Vivado中FFT IP的使用教程

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

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

    10GBe/40GBe UDP 协议栈 IP 、10GbE TCP/IP 协议栈 IP 和 NVMe
    的头像 发表于 10-30 17:39 295次阅读
     芯驿电子 ALINX 推出全新 <b class='flag-5'>IP</b> <b class='flag-5'>核</b>产品线,覆盖 TCP/UDP/NVMe <b class='flag-5'>AXI</b> <b class='flag-5'>IP</b> <b class='flag-5'>核</b>

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

    /40GBe UDP 协议栈 IP 、10GbE TCP/IP 协议栈 IP 和 NVMe AXI
    的头像 发表于 10-30 11:53 232次阅读
    芯驿电子ALINX推出全新<b class='flag-5'>IP</b><b class='flag-5'>核</b>产品线

    AMBA AXI4接口协议概述

    AMBA AXI4(高级可扩展接口 4)是 ARM 推出的第四代 AMBA 接口规范。AMD Vivado Design Suite 2014 和 ISE Design Suite 14 凭借半导体产业首个符合 AXI4 标准的即插即用型
    的头像 发表于 10-28 10:46 209次阅读
    AMBA <b class='flag-5'>AXI</b>4接口协议概述

    Xilinx DDS IP的使用和参数配置

    用RAM实现一个DDS,从原理上来说很简单,在实际使用的时候,可能没有直接使用官方提供的IP来的方便。这个博客就记录一下,最近使用到的这个DDS IP
    的头像 发表于 10-25 16:54 837次阅读
    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 330次阅读
    如何申请xilinx <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license

    MicroBlaze V软处理器的功能特性

    本指南提供了有关 AMD Vivado Design Suite 中包含的 32 位和 64 位 MicroBlaze V 软处理器的信息。该文档旨在用作为处理器硬件架构的指南,随附《RISC-V 指令集手册》第一卷和第二卷。
    的头像 发表于 10-16 09:17 451次阅读
    <b class='flag-5'>MicroBlaze</b> V软<b class='flag-5'>核</b>处理器的功能特性

    Xilinx NVMe AXI4主机控制器,AXI4接口高性能版本介绍

    NVMe AXI4 Host Controller IP可以连接高速存储PCIe SSD,无需CPU,自动加速处理所有的NVMe协议命令,具备独立的数据写入和读取AXI4接口,不但适用高性能、顺序
    的头像 发表于 07-18 09:17 536次阅读
    Xilinx NVMe <b class='flag-5'>AXI</b>4主机控制器,<b class='flag-5'>AXI</b>4接口高性能版本介绍

    基于TI Sitara系列AM5728工业开发板——FPGA视频开发案例分享

    MicroBlaze可通过对应地址对IP进行控制。 编辑 图 23 本案例分别支持CameraLink Full模式(工程为cameralink_display_full_xx
    发表于 07-12 17:24

    esp32在静态IP下,域名无法解析怎么解决?

    _info 1esp32使用dhcp,正常获取IP连接网络,可以解析域名. 2esp32使用静态IP,正常获取IP连接网络,无法解析域名。
    发表于 06-25 07:56

    FPGA的IP使用技巧

    FPGA的IP使用技巧主要包括以下几个方面: 理解IP的概念和特性 : IP是指用硬
    发表于 05-27 16:13

    关于FPGA IP

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

    AMD FPGA中MicroBlaze的固化流程详解

    AMD FPGA在配置了适当的启动模式后,上电即会按该模式去加载配置文件。以7系列FPGA为例,假设设置模式引脚M[2:0]=3’b001,上电后FPGA会以Master SPI方式尝试从FLASH加载配置文件,其与工程是否含有MicroBlaze IP无关。
    发表于 04-25 12:49 510次阅读
    AMD FPGA中<b class='flag-5'>MicroBlaze</b>的固化流程详解

    AMD FPGA的MicroBlaze固化过程详解

    MicroBlaze是AMD FPGA推出的一款32/64位软嵌入式处理器,其高度可配置,可满足通信、工业、医疗、汽车、以及消费类各场景需求。
    的头像 发表于 03-21 17:08 2190次阅读
    AMD FPGA的<b class='flag-5'>MicroBlaze</b>固化过程详解

    AMBA总线之AXI设计的关键问题讲解

    首先我们看一下针对AXI接口的IP设计,在介绍之前我们先回顾一下AXI所具有的一些feature。
    的头像 发表于 02-20 17:12 1806次阅读
    AMBA总线之<b class='flag-5'>AXI</b>设计的关键问题讲解