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

    关注

    73

    文章

    2192

    浏览量

    129919
  • MicroBlaze
    +关注

    关注

    3

    文章

    68

    浏览量

    22225
  • IP核
    +关注

    关注

    4

    文章

    339

    浏览量

    51715

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    利用开源uart2axi4实现串口访问axi总线

    microblaze和jtag-to-axi(jtag2axi)虽然也提供了访问axi总线的能力,但是依赖于xilinx平台。而uart-to-ax
    的头像 发表于 12-02 10:05 1560次阅读
    利用开源uart2<b class='flag-5'>axi</b>4实现串口访问<b class='flag-5'>axi</b>总线

    RDMA设计6:IP架构2

    扩展的通用 IP ,在 RoCE v2 高速数据传输系统担任网络物理层的角色。其提供一组主 AXI-Stream 接口和一组从 AXI-Stream接口,用以传输网络包。同时 CMA
    发表于 11-26 10:24

    基于AXI DMA IP的DDR数据存储与PS端读取

    添加Zynq Processing System IP,配置DDR控制器和时钟。7000系列的Zynq可以参考正点原子DMA回环测试设置。
    的头像 发表于 11-24 09:25 2630次阅读
    基于<b class='flag-5'>AXI</b> DMA <b class='flag-5'>IP</b><b class='flag-5'>核</b>的DDR数据存储与PS端读取

    使用AXI4接口IP进行DDR读写测试

    本章的实验任务是在 PL 端自定义一个 AXI4 接口的 IP ,通过 AXI_HP 接口对 PS 端 DDR3 进行读写测试,读写的内存大小是 4K 字节。
    的头像 发表于 11-24 09:19 2747次阅读
    使用<b class='flag-5'>AXI</b>4接口<b class='flag-5'>IP</b><b class='flag-5'>核</b>进行DDR读写测试

    Xilinx高性能NVMe Host控制器IP+PCIe 3.0软控制器IP,纯逻辑实现,AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0

    NVMe AXI4 Host Controller IP1介绍NVMe AXI4 Host Controller IP可以连接高速存储PCIe SSD,无需CPU,自动加速处理所有的N
    发表于 11-14 22:40

    将e203 例化AXI总线接口

    将系统外设总线内部axi接口引出给gpio,注意vivado中gpio地址分配应保证移植 Debug: 通过Xil_Out32函数给gpio的地址写1或者0,注意这里地址是gpio地址也就是中给
    发表于 10-29 06:08

    VDMA IP简介

    VDMA端口信号 S_AXI_LITE:PS端可以通过AXI_LITE协议对IP进行控制; S_AXIS_S2MM:视频流(AXI
    发表于 10-28 06:14

    Vivado浮点数IP的握手信号

    Vivado浮点数IP的握手信号 我们的设计方案中,FPU计算单元将收到的三条数据和使能信号同步发给20多个模块,同时只有一个模块被时钟使能,进行计算,但结果都会保留,发给数选。计算单元还需接受
    发表于 10-24 07:01

    MicroBlaze处理器嵌入式设计用户指南

    *本指南内容涵盖了在嵌入式设计中使用 MicroBlaze 处理器、含存储器 IP 的设计、IP integrator 中的复位和时钟拓扑结构。获取完整版《
    的头像 发表于 07-28 10:43 785次阅读

    VIVADO自带Turbo译码器IP怎么用?

    turbo 译码器IP没有输出,不知道哪里出了问题,有经验的小伙伴帮忙看看啊 搭建了turbo 译码器IP测试工程,用Matlab产生的数据源,
    发表于 06-23 17:39

    NVMe IPAXI4总线分析

    广泛应用 。随着时间的推移,AXI4的影响不断扩大。目前,由Xilinx提供的大部分IP接口都支持AXI4总线,使得系统中不同模块之间的互连更加高效。这也让基于这些IP的开发变得更加快
    发表于 06-02 23:05

    一文详解AXI DMA技术

    AXI直接数值存取(Drect Memory Access,DMA)IPAXI4内存映射和AXI4流
    的头像 发表于 04-03 09:32 2071次阅读
    一文详解<b class='flag-5'>AXI</b> DMA技术

    一文详解Video In to AXI4-Stream IP

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

    AXI 接口设计避坑指南:AXI接口笔记

    AXI接口笔记 第一章 问题记录 第1节 接收数据全0或全1 1.1 问题现象 上图中,pixel_data_o是EC IP输出的图像数据,正确的话会如上图所示,图像数据每个时钟会变化并且值
    的头像 发表于 03-10 17:21 772次阅读
    <b class='flag-5'>AXI</b> 接口设计避坑指南:<b class='flag-5'>AXI</b>接口笔记

    ZYNQ基础---AXI DMA使用

    Xilinx官方也提供有一些DMA的IP,通过调用API函数能够更加灵活地使用DMA。 1. AXI DMA的基本接口 axi dma IP
    的头像 发表于 01-06 11:13 3577次阅读
    ZYNQ基础---<b class='flag-5'>AXI</b> DMA使用