控制 AXI4-Lite 接口中的时钟和复位 - 2021.2 Chinese

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

Document ID
UG1399
Release Date
2021-12-15
Version
2021.2 Chinese
注释: 如果在使用不同时钟频率的总线互连结构中例化 AXI4-Lite 从寄存器,那么 Vivado IP integrator 将自动生成时钟域交汇 (CDC) slice,其执行的功能与上述控制时钟相同,故而无需使用选项。

默认情况下,Vitis HLS 针对 AXI4-Lite 接口和已综合的设计使用相同时钟。Vitis HLSAXI4-Lite 接口中的所有寄存器都连接到用于综合逻辑的时钟 (ap_clk)。

(可选)您可使用 INTERFACE 指令 clock 选项来为每个 AXI4-Lite 端口指定独立的时钟。将时钟连接到 AXI4-Lite 接口时,必须使用以下协议:

  • AXI4-Lite 接口时钟必须同步到用于综合逻辑的时钟 (ap_clk)。即,这 2 个时钟必须衍生自同一个主生成器时钟。
  • AXI4-Lite 接口时钟频率必须等于或小于用于综合逻辑的时钟 (ap_clk) 的频率。

如果将 clock 选项与 INTERFACE 指令搭配使用,那么只需针对每个捆绑中的 1 个函数实参指定 clock 选项即可。Vitis HLS 通过相同的时钟和复位来实现捆绑中的所有其它函数实参。Vitis HLSap_rst_ 作为前缀并后接时钟名称的方式来对生成的复位信号命名。生成的复位信号处于低电平有效状态,与 config_rtl 命令无关。

以下示例显示了 Vitis HLS 如何将函数实参 ab 组合到同一个 AXI4-Lite 端口内,且该端口含名为 AXI_clk1 的时钟和关联的复位端口。

// Default AXI-Lite interface implemented with independent clock called AXI_clk1
#pragma HLS interface mode=s_axilite port=a clock=AXI_clk1
#pragma HLS interface mode=s_axilite port=b

在以下示例中,Vitis HLS 将函数实参 cd 组合到 AXI4-Lite 端口 CTRL1 内,该端口含名为 AXI_clk2 的独立时钟和关联的复位端口。

// CTRL1 AXI-Lite bundle implemented with a separate clock (called AXI_clk2)
#pragma HLS interface mode=s_axilite port=c bundle=CTRL1 clock=AXI_clk2
#pragma HLS interface mode=s_axilite port=d bundle=CTRL1