You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MicroBlaze在Vitis中如何使用AXI Stream接口实现通信

Vitis环境下MicroBlaze AXI Stream接口通信的头文件与对应函数

基础必带头文件

不管你用哪种方式连接AXI Stream设备,首先必须包含BSP根据硬件配置自动生成的xparameters.h,该文件内定义了所有流接口、外设的基地址、设备ID等硬件参数宏,你连接自定义IP的2个流端口的地址宏也在这个文件里,命名一般为XPAR_MICROBLAZE_0_S<N>_AXIS_BASEADDR(发送端口)、XPAR_MICROBLAZE_0_M<N>_AXIS_BASEADDR(接收端口),N为端口序号0~15,对应你配置的16个流接口。

分场景使用的头文件与操作函数

  • 场景1:直接使用MicroBlaze原生引出的AXI Stream端口连接自定义IP(无中间IP)
    这是当前配置最常用的方式,不需要额外引入专用外设驱动,包含通用IO头文件xil_io.h即可。
    对应操作函数:

    • 流发送:根据传输位宽选择Xil_OutByte(端口基地址, 发送数据)、Xil_OutHalfWord(端口基地址, 发送数据)、Xil_OutWord(端口基地址, 发送数据)
    • 流接收:根据传输位宽选择Xil_InByte(端口基地址)、Xil_InHalfWord(端口基地址)、Xil_InWord(端口基地址),函数返回值即为接收到的流数据
      这类操作是阻塞式的:发送时如果对端自定义IP未拉高TREADY信号,函数会持续等待直到传输完成;接收时如果对端未拉高TVALID发送有效数据,读操作会一直阻塞直到数据到达。
  • 场景2:MicroBlaze和自定义IP之间串接了AXI Stream FIFO/AXI DMA等中间IP
    需要引入对应IP的官方驱动头文件,调用对应驱动函数完成通信:

    • 串接AXI Stream FIFO时,头文件为xaxis_fifo.h,核心操作函数为XAxiFifo_Initialize()(初始化FIFO实例)、XAxiFifo_Send()(批量发送流数据)、XAxiFifo_Recv()(批量接收流数据)
    • 串接AXI DMA做高速流传输时,头文件为xaxidma.h,核心操作函数为XAxiDma_Initialize()(初始化DMA实例)、XAxiDma_SimpleTransfer()(启动简单模式DMA传输)

注意:使用原生流接口时不需要手动配置编译选项,Vitis根据XSA硬件文件生成BSP时会自动开启MicroBlaze流指令支持,手动修改编译参数移除对应指令选项会导致流通信异常。

内容的提问来源于stack exchange,提问作者Ethan Link

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:39:28