M_AXI 资源 - 2023.2 简体中文

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 简体中文

AXI 主适配器用于将自定义的 AXI 命令从 HLS 调度器转换为标准 AXI AMBA® 协议,并将其发送至外部存储器。MAXI 适配器使用 FIFO 等资源来存储请求/数据和确认 (ack)。以下提供了它所耗用的模块和资源综述:

  • 写入模块:总线写入模块负责执行写入操作。
    • FIFO_wreq:此 FIFO 模块负责存储未来写入请求。当 AW 通道可用时,将从该 FIFO 跳出针对全局存储器的新写入请求。
    • buff_wdata:此 FIFO 负责存储未来写入数据,这些数据需发送至全局存储器。当 W 通道可用并且满足 AXI 协议条件时,将从该 FIFO 跳出大小与 burst_length 相等的写入数据,并发送至全局存储器。
    • FIFO_resp:该模块负责控制向模块发送的流水线写入响应的数量。
  • 读取模块:这些模块负责执行读取操作。它使用以下资源
    • FIFO_rreq:此 FIFO 模块负责存储未来写入请求。当 AR 通道空闲时,将从该 FIFO 跳出针对全局存储器的读取请求。
    • buff_rdata:此 FIFO 负责存储从全局存储器接收到的读取数据。

M_AXI 适配器的器件资源耗用量是所有写入模块(FIFO_wreq module 模块、buff_wdata、和 FIFO_ resp 的大小)总和与所有读取模块总和相加所得。总之,FIFO 大小的计算方式为“宽度 * 深度”。当您引用 1 KB FIFO 存储器时,它可采用 32*32、8*64 等任一配置,具体配置根据设计规格来选择。同样,可使用以下配置命令来为设计全局配置该适配器的 FIFO 存储器:

  • syn.interface.m_axi_latency
  • syn.interface.m_axi_max_read_burst_length/syn.interface.m_axi_max_write_burst_length
  • syn.interface.m_axi_num_read_outstanding/syn.interface.m_axi_num_write_outstanding
  • syn.interface.m_axi_addr64
提示: 您还可使用 INTERFACE 编译指示或指令上的类似选项来配置特定 m_axi 接口。

这些配置选项用于控制 FIFO 的宽度和深度,如下所示。

  • FIFO_wreq/rreq module 大小 = (width( syn.interface.m_axi_addr64)) * Depth( syn.interface.m_axi_latency ))。Vivado 工具会将此 FIFO 作为移位寄存器来实现。
  • buff_wdata/buff_rdata 模块大小 = (HLS 综合后的端口宽度 * 深度 (syn.interface.m_axi_num_write_outstanding * syn.interface.m_axi_max_write_burst_length ))。

    提示: 默认情况下,此 FIFO 将作为块 RAM 来实现,但可在 LUTRAM 或 URAM(由 syn.interface.m_axi_buffer_impl 判定)中实现。
  • FIFO_resp 模块大小 = 深度 (syn.interface.m_axi_num_write_outstanding)。