M_AXI 资源 - 2021.2 Chinese

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

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese

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 模块、buff_wdata、和 FIFO_ resp 的大小)总和与所有读取模块总和相加所得。总之,FIFO 大小的计算方式为“宽度 * 深度”。当您引用 1KB FIFO 存储器时,它可采用 32*32、8*64 等任一配置,具体配置根据设计规格来选择。同样,可使用 config_interface 命令的以下选项来为设计全局配置该适配器的 FIFO 存储器:

    • -m_axi_latency
    • -m_axi__max_read/write_burst_length
    • -m_axi_num_read/write_outstanding
    • -m_axi_addr64
    提示: 您还可使用 INTERFACE 编译指示或指令上的类似选项来配置特定 m_axi 接口。

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

    • FIFO_wreq/rreq 模块的大小 = ~~~ (width( config_interface m_axi_addr64[=true|false])) * Depth( config_interface m_axi_latency ))。实现 Vivado 后,此 FIFO 将作为移位寄存器来实现。
    • buff_wdata 模块的大小 = ~~~ (width ( port width after hls synthesis) * Depth (config_interface m_axi_num_read/write_outstanding* config_interface m_axi_max_read/write_burst_length ))。

      提示: 默认情况下,此 FIFO 将作为 BRAM 来实现,但可由用户使用以下设置来控制:config_interface -maxi_buffer_impl <auto|lutram|bram|uram>。
    • FIFO_resp 模块的大小 = width(2) * depth (config_interface -m_axi_num_read/write_outstanding-1)。