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

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

3天内不再提示

Xilinx生成的读写函数

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-07-27 09:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

1. AXI IP核简介

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

9a2bfe9e-0d46-11ed-ba43-dac502259ad0.jpg

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

9a3dff4a-0d46-11ed-ba43-dac502259ad0.png

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

9a51fba8-0d46-11ed-ba43-dac502259ad0.jpg

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

9a5dbe70-0d46-11ed-ba43-dac502259ad0.png

2. AXI IP核使用

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

9a7999ba-0d46-11ed-ba43-dac502259ad0.jpg

寄存器定义

9a84b566-0d46-11ed-ba43-dac502259ad0.png

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

9aa30372-0d46-11ed-ba43-dac502259ad0.jpg

读写函数

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

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

9ab2ee86-0d46-11ed-ba43-dac502259ad0.png

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

3. 总结

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

审核编辑:彭静

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

    关注

    31

    文章

    5619

    浏览量

    130421
  • Xilinx
    +关注

    关注

    73

    文章

    2206

    浏览量

    131900
  • 函数
    +关注

    关注

    3

    文章

    4422

    浏览量

    67848

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索 SN54LS181、SN54S181、SN74LS181 和 SN74S181 算术逻辑单元/函数生成

    探索 SN54LS181、SN54S181、SN74LS181 和 SN74S181 算术逻辑单元/函数生成器 在电子工程师的日常设计工作中,选择合适的芯片是实现高效、可靠电路的关键。今天,我们就来
    的头像 发表于 04-22 16:40 180次阅读

    USB RFID读写器的四个常见应用

    任何需要小型、低成本读卡器的应用,都值得考虑USB RFID读写器。USB读写器具备大部分大型同类的基本功能,只是功率稍低一些。如果你有一款非常适合RFID的应用,但又想控制预算,可以看看斯科的USB桌面读写器。为了让你了解US
    的头像 发表于 04-13 14:51 635次阅读

    集成式RFID读写器与非集成RFID读写

    集成RFID读写器将典型的固定RFID读写器和RFID天线集成为一体,无需外部天线。如果需要额外的天线,一些集成读写器会有一个额外的天线端口,允许用户连接到另一个天线。集成式RFID读写
    的头像 发表于 03-16 15:46 228次阅读
    集成式RFID<b class='flag-5'>读写</b>器与非集成RFID<b class='flag-5'>读写</b>器

    函数信号发生器和任意波形信号发生器区别详解

    函数发生器提供了一个预置列表,里面列出了它可以生成的波形或码型。 在函数发生器中,用户可以更改频率、幅度和偏移等波形参数,还可添加简单的失真。 任意波形发生器更为复杂,能够仿真真实世界中的信号
    的头像 发表于 02-09 16:24 379次阅读
    <b class='flag-5'>函数</b>信号发生器和任意波形信号发生器区别详解

    工业RFID读写器,你知道哪几种?#RFID读写器#三格电子

    读写
    三格电子科技
    发布于 :2026年01月30日 17:11:42

    SD卡读写均衡失效问题分析

    一、读写均衡失效引发的核心问题 读写均衡(磨损均衡,Wear Leveling)是SD卡固件通过算法将数据均匀分配到闪存芯片各单元,避免局部单元过度擦写的关键机制。瀚海微SD卡出现读写均衡失效后,会
    的头像 发表于 12-29 15:08 623次阅读
    SD卡<b class='flag-5'>读写</b>均衡失效问题分析

    ElfBoard嵌入式教育科普|Linux系统I/O接口:Open函数详解

    1.函数概述open()是Linux/Unix内核提供的底层系统调用,核心功能是打开或创建文件。成功调用后,内核会返回一个整型的文件描述符作为该文件的句柄,后续的所有读写操作都基于此描述符进行。调用
    的头像 发表于 12-29 11:41 1287次阅读
    ElfBoard嵌入式教育科普|Linux系统I/O接口:Open<b class='flag-5'>函数</b>详解

    西门子PLC中函数FC的使用方法

    函数函数块作为模块化编程的重要组成部分,在PLC 用户程序中有着相当频繁的应用。两者在生成与使用的过程中都有一定的相似,且都不能单独使用。而需要赋予特定的功能,由组织块(OB)直接或者间接进行调用。
    的头像 发表于 12-19 11:26 4563次阅读
    西门子PLC中<b class='flag-5'>函数</b>FC的使用方法

    Xilinx FPGA串行通信协议介绍

    Xilinx FPGA因其高性能和低延迟,常用于串行通信接口设计。本文深入分析了Aurora、PCI Express和Serial RapidIO这三种在Xilinx系统设计中关键的串行通信协议。介绍了它们的特性、优势和应用场景,以及如何在不同需求下选择合适的协议。
    的头像 发表于 11-14 15:02 2798次阅读
    <b class='flag-5'>Xilinx</b> FPGA串行通信协议介绍

    什么是超高频rfid读写设备,RFID读写器远距离读取能达到15米吗?

    在物联网技术飞速发展的当下,RFID读写器作为数据采集的核心设备,已广泛渗透到生产生活的多个领域。其中,超高频rfid读写器凭借独特的性能优势,成为物流、零售、制造等行业的“得力助手”。很多人会好
    的头像 发表于 11-06 15:08 614次阅读
    什么是超高频rfid<b class='flag-5'>读写</b>设备,RFID<b class='flag-5'>读写</b>器远距离读取能达到15米吗?

    生成Bitstream的DRC LUTLP-1错误的解决办法

    bitstream时出现DRC错误,根据xilinx官方社区的帮助,解决了这问题。 在生成bitstream之前,进行设置。 在bitstream设置界面的tcl.pre出添加一个tcl文件,文件中包含
    发表于 10-30 07:42

    【RA4M2-SENSOR】+Memory读写测试及观察

    为进行code flash读写测试,需使用RASC按图3进行配置并生成KEIL项目工程。 图3 配置处理 在完成配置并生成项目工程后,需为读写code flash添加以下
    发表于 09-30 23:00

    第二十九章 读写内部FLASH

    本文介绍了W55MH32内部FLASH,其含主存储、系统存储等,可存储代码及掉电保存数据。读写需解锁、擦除页等步骤,标准库提供相关函数。还展示了擦除编程测试及模拟EEPROM读写的实验。
    的头像 发表于 06-20 14:09 1370次阅读
    第二十九章 <b class='flag-5'>读写</b>内部FLASH

    基于AD9613与Xilinx MPSoC平台的高速AD/DA案例分享

    本文主要介绍基于Xilinx UltraScale+MPSoC XCZU7EV的高速AD采集与高速DA输出案例
    的头像 发表于 06-03 14:22 1123次阅读
    基于AD9613与<b class='flag-5'>Xilinx</b> MPSoC平台的高速AD/DA案例分享

    cyusb3014插入usb2.0接口后,软件调用cyapi.lib中的哪些函数完成初始化、读写操作?

    cyusb3014,插入usb2.0接口后,软件调用cyapi.lib中的哪些函数完成初始化、读写操作?
    发表于 05-29 07:14