接口配置 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

syn.interface 命令用于配置应用于 HLS 组件的默认接口设置。对于特定顶层接口端口,可使用 syn.directive.interface 覆盖这些设置。

syn.interface.clock_enable
向设计添加时钟使能端口 (ap_ce)。时钟使能处于低电平有效状态时会阻止所有时钟操作,并禁用所有后续操作。默认为 false。
syn.interface.clock_enable=1
syn.interface.default_slave_interface
指定默认从接口。支持 2 种模式:s_axilitenone。默认值为 s_axilite
syn.interface.default_slave_interface=none
syn.interface.m_axi_addr64
为所有 m_axi 接口启用 64 位寻址。默认情况下,已启用该选项。禁用此设置时,m_axi 接口会使用 32 位寻址。
syn.interface.m_axi_addr64=1
syn.interface.m_axi_alignment_byte_size
为所有 m_axi 接口指定默认分配字节大小。不指定该选项时,默认为 Vitis 内核流程指定 64 字节,或者为 Vivado IP 流程指定 1 字节,如Vitis 高层次综合用户指南(UG1399) 的“Vivado/Vitis 流程的默认设置”章节所述。
syn.interface.m_axi_alignment_byte_size=16
提示: 值为 0 无效。
syn.interface.m_axi_auto_id_channel
m_axi 接口启用自动通道 ID 分配。默认禁用此项。如需了解获取更多信息,请参阅Vitis 高层次综合用户指南(UG1399) 的“AXI4 主接口”章节。
syn.interface.m_axi_auto_id_channel=1
syn.interface.m_axi_auto_max_ports
为接口上的每个实参或端口启用自动创建独立 m_axi 接口适配器的功能。默认禁用此项,将 m_axi 接口数量减少到所需的最小数量。如需了解更多信息,请参阅Vitis 高层次综合用户指南(UG1399) 的“M_AXI 捆绑”章节。
syn.interface.m_axi_auto_max_ports=1
syn.interface.m_axi_buffer_impl
m_axi 适配器内部的所有缓冲器指定实现资源。选项包括:autolutrambramuram。默认值为 bram
syn.interface.m_axi_buffer_impl=lutram
syn.interface.m_axi_cache_impl
指定实现资源以供添加到 m_axi 适配器的高速缓存使用。选项包括:autolutrambramuram。默认值为 auto
syn.interface.m_axi_cache_impl=lutram
syn.interface.m_axi_conservative_mode
将所有 m_axi 适配器配置为以保守模式工作,等待直至关联的写入数据完全可用为止(通常指数据已缓冲至适配器内或者已发射)。它使用 MAXI 适配器内的缓冲器来存储突发的所有数据,读取和写入时都是如此。默认启用此功能特性,这样可能导致写入时延有所增加,但是可以解决由于存储器子系统上的并发请求(读取或写入请求)而导致的死锁。将其设为 false 即可禁用保守模式。
syn.interface.m_axi_conservative_mode=0
syn.interface.m_axi_flush_mode
将所有 m_axi 适配器配置为可刷新,如果由于流水线阻塞导致突发中断,则写入或读取垃圾数据,发生流水线阻塞的原因是由于未处于保守模式下或者缺失输出空间而导致数据输入缺失。默认禁用此项。
syn.interface.m_axi_flush_mode=1
syn.interface.m_axi_latency
全局指定 m_axi 接口的期望时延,允许设计先发起总线请求,经过数个周期(时延)后再执行期望的读取或写入操作。对于 Vitis 内核流程,默认值为 64,对于 Vivado IP 流程则为 0,如Vitis 高层次综合用户指南(UG1399) 的“VivadoVitis 流程的默认设置”章节中所述。
syn.interface.m_axi_latency=5
syn.interface.m_axi_max_bitwidth
指定 m_axi 接口数据通道的最大位宽。默认为 1024 位。指定的值必须为 2 的幂(介于 8 到 1024 之间)。如果实际访问大于所需接口,那么这样会降低吞吐量,因为访问将被拆分为多周期访问突发。
syn.interface.m_axi_max_bitwidth=128
syn.interface.m_axi_max_read_burst_length
指定突发传输期间所有 m_axi 接口读取的数据值的全局最大数量。默认值为 16。
syn.interface.m_axi_max_read_burst_length=12
syn.interface.m_axi_max_widen_bitwidth
启用端口宽度自动调整,以便为 m_axi 接口拓宽突发,最高可拓宽至所选位宽。指定的值必须为 2 的幂(介于 8 到 1024 之间),并且必须与 -m_axi_alignment_size 对齐。对于 Vitis 内核流程,默认值为 512,对于 Vivado IP 流程则为 0。
syn.interface.m_axi_max_widen_bitwidth=64
syn.interface.m_axi_max_write_burst_length
指定突发传输期间所有 m_axi 接口写入的数据值的全局最大数量。默认值为 16。
syn.interface.m_axi_max_write_burst_length=12
syn.interface.m_axi_min_bitwidth
指定 m_axi 接口数据通道的最小位宽。默认为 8 位。值必须为 2 的幂(介于 8 到 1024 之间)。如果实际访问小于所需接口,那么这样并不一定会增加吞吐量。
syn.interface.m_axi_min_bitwidth=64
syn.interface.m_axi_num_read_outstanding
指定在设计停滞前可对 m_axi 接口发出读取请求的数量(无响应)。此操作暗示设计中的内部存储空间,且 FIFO 大小为:
num_read_outstanding*max_read_burst_length*word_size
默认值为 16。
syn.interface.m_axi_num_read_outstanding=8
syn.interface.m_axi_num_write_outstanding
指定在设计停滞前可对 m_axi 接口发出写入请求的数量(无响应)。此操作暗示设计中的内部存储空间,且 FIFO 大小为:
num_write_outstanding*max_write_burst_length*word_size
默认值为 16。
syn.interface.m_axi_num_write_outstanding=8
syn.interface.m_axi_offset
指定所有 m_axi 接口的默认偏移机制。选项为:
  • off:不生成偏移端口。
  • slave:生成偏移端口并自动将其映射到 s_axilite 接口。这是默认值。
  • direct:生成标量输入偏移端口,以便通过偏移端口将地址偏移直接传递到 IP 内。
syn.interface.m_axi_offset=slave
syn.interface.register_io
为顶层函数上的所有标量输入、输出或所有标量端口全局启用寄存器(阵列始终寄存)。选项包括:offscalar_inscalar_outscalar_all。默认值为 off
syn.interface.register_io=scalar_out
syn.interface.s_axilite_auto_restart_counter
为内核启用自动重启行为。使用 1 即可启用自动重启功能,或者使用默认值 0 即可将其禁用。启用该功能时,工具会在 ap_ctrl_chain 控制协议中为 s_axilite 接口建立自动重启位。如需了解更多信息,请参阅Vitis 高层次综合用户指南(UG1399) 中的“自动重启模式”。
syn.interface.s_axilite_auto_restart_counter=1
syn.interface.s_axilite_data64
s_axilite 接口启用 64 位数据宽度。使用 1 即可启用 64 位数据宽度,使用 0 则将其禁用。默认为 32 位数据宽度。
syn.interface.s_axilite_data64=1
syn.interface.s_axilite_interrupt_mode
为将在读取时清零 (cor) 或者在写入时切换 (tow) 的 s_axilite 接口指定中断模式。“Clear on Read”(读取时清零)中断可在单一传输事务内完成,而 tow 则需要两项传输事务。Tow 是默认中断模式。
syn.interface.s_axilite_interrupt_mode=cor
syn.interface.s_axilite_mailbox
启用为非串流非稳定 s_axilite 实参创建邮箱的功能。邮箱功能用于设置和管理自动重启内核,如Vitis 高层次综合用户指南(UG1399) 的“自动重启模式”章节中所述。
可用选项包括:
  • in:仅为输入实参启用邮箱
  • out:仅为输出实参启用邮箱
  • both:为输入和输出实参启用邮箱
  • none:不创建邮箱。这是默认值。
syn.interface.s_axilite_mailbox=in
syn.interface.s_axilite_status_regs
s_axilite 寄存器文件中通过为启用 ECC 的每个 BRAM 或 URAM 设置两个读取时清零 (COR) 计数器,来启用 ECC 错误位的公开。选项包括:ecc 启用该功能,或者 off 禁用该功能。默认禁用该选项。
syn.interface.s_axilite_status_regs=ecc
syn.interface.s_axilite_sw_reset
s_axilite 适配器中启用软件复位。
syn.interface.s_axilite_sw_reset=1