注記: 異なるクロック周波数を使用するバス ファブリックにスレーブ AXI4-Lite レジスタ ファイルをインスタンシエートする場合、次に説明されるように、Vivado IP インテグレーターで制御クロックと同じ機能を実行するクロック乗せ換え (CDC) スライスが自動的に生成されます。
デフォルトでは、Vitis HLS は AXI4-Lite インターフェイスと合成済みデザインに同じクロックが使用されます。また、Vitis HLS では、AXI4-Lite インターフェイスのすべてのレジスタが合成されたロジック (ap_clk
) に使用されるクロックに接続されます。
INTERFACE 指示子に clock
オプションを使用すると、AXI4-Lite ポートごとに別々のクロックを指定できます (オプション)。クロックを AXI4-Lite インターフェイスに接続する場合は、次のプロトコルを使用する必要があります。
-
AXI4-Lite インターフェイス クロックは、合成されたロジック (
ap_clk
) に使用されるクロックと同期している必要があります。つまり、どちらのクロックも同じマスター ジェネレーター クロックから派生している必要があります。 -
AXI4-Lite インターフェイス クロックの周波数は、合成されたロジック (
ap_clk
) に使用されるクロックの周波数以下にする必要があります。
INTERFACE 指示子に clock
オプションを使用する場合、clock
オプションは各バンドルの 1 つの関数引数に指定するだけです。Vitis HLS では、バンドル内のその他すべての関数引数が同じクロックとリセットを使用してインプリメントされます。Vitis HLS では、リセット信号が ap_rst_
の後にクロック名が付いた名前で生成されます。生成されるリセット信号は、config_rtl
コマンドとは関係なくアクティブ Low になります。
次の例では、Vitis HLS で関数引数 a
および b
が AXI_clk1
というクロックと関連するリセット ポートと一緒に AXI4-Lite ポートにまとめられるところを示しています。
// 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 で関数引数 c
および d
が CTRL1
というクロックと関連するリセット ポートを使用して AXI4-Lite ポートの 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