FIR のスタティック パラメーター - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

FIR のスタティック パラメーターは、入力幅と出力幅、小数ビット数、係数値、補間レートおよび間引きレートなどの変化しない値を指定します。これらのほとんどにデフォルト値がありますが、係数にはデフォルト値はありません。

hls_fir.h ヘッダー ファイルでは、スタティック パラメーターのデフォルト値を設定するのに使用可能な struct hls::ip_fir::params_t が定義されます。

重要: 係数にはデフォルト値は定義されないので、AMDでは、FIR を直接初期化するために定義済みの構造体を使用することはお勧めしていません。スタティック パラメーターを指定するには、係数を指定する新しいユーザー定義構造体を使用する必要があります。

次の例では、新しい係数値を指定する新しいユーザーの struct my_config を定義しています。係数は配列 coeff_vec として指定されています。FIR のその他すべてのパラメーターにはデフォルト値が使用されます。

struct myconfig : hls::ip_fir::params_t {
    static const double coeff_vec[sg_fir_srrc_coeffs_len];
};
static hls::FIR<myconfig> fir1;
fir1.run(fir_in, fir_out);

FIR の構造体パラメーター

次の表は、パラメーター構造体 hls::ip_fir::params_t に使用されるパラメーターについて説明し、パラメーターのデフォルト値と使用可能な値を示しています。

表 1. FIR の構造体パラメーターの値
パラメーター 説明 C データ型 デフォルト値 有効な値
input_width データ入力ポート幅 unsigned 16 制限なし
input_fractional_bits 入力ポートの小数ビットの数 unsigned 0 input_width のサイズにより制限
output_width データ出力ポート幅 unsigned 24 制限なし
output_fractional_bits 出力ポートの小数ビットの数 unsigned 0 output_width のサイズにより制限
coeff_width 係数のビット幅 unsigned 16 制限なし
coeff_fractional_bits 係数の小数ビットの数 unsigned 0 coeff_width のサイズにより制限
num_coeffs 係数の数 bool 21 フル
coeff_sets 係数セットの数 unsigned 1 1 ~ 1024
input_length 入力データのサンプル数 unsigned 21 制限なし
output_length 出力データのサンプル数 unsigned 21 制限なし
num_channels 処理されるデータのチャネル数を指定 unsigned 1 1 ~ 1024
total_num_coeff 係数の総数 unsigned 21 num_coeffs * coeff_sets
coeff_vec[total_num_coeff] 係数配列 double array なし 該当なし
filter_type フィルターに使用されるフィルター タイプをインプリメント unsigned single_rate single_rate、interpolation、decimation、hilbert_filter、interpolated
rate_change 整数または小数レートの変更を指定 unsigned integer integer、fixed_fractional
interp_rate 補間レート unsigned 1 1 ~ 1024
decim_rate 間引きレート unsigned 1 1 ~ 1024
zero_pack_factor 補間で使用される係数 0 の数 unsigned 1 1-8
rate_specification レートを周波数または周期として指定 unsigned period frequency、period
hardware_oversampling_rate オーバーサンプリングのレートを指定 unsigned 1 制限なし
sample_period ハードウェアのオーバーサンプリング周期 bool 1 制限なし
sample_frequency ハードウェアのオーバーサンプリング周波数 unsigned 0.001 制限なし
quantization 使用される量子化方法 unsigned integer_coefficients integer_coefficients、quantize_only、maximize_dynamic_range
best_precision 最適な精度をイネーブルまたはディスエーブル unsigned false

false

true

coeff_structure 使用する係数構造のタイプ unsigned non_symmetric inferred、non_symmetric、symmetric、negative_symmetric、half_band、hilbert
output_rounding_mode 出力で使用される丸めのタイプ unsigned full_precision full_precision、truncate_lsbs、non_symmetric_rounding_down、non_symmetric_rounding_up、symmetric_rounding_to_zero、symmetric_rounding_to_infinity、convergent_rounding_to_even、convergent_rounding_to_odd
filter_arch シストリックまたは転置型アーキテクチャを選択 unsigned systolic_multiply_accumulate systolic_multiply_accumulate、transpose_multiply_accumulate
optimization_goal 最適化目標を速度またはエリアに指定 unsigned area area、speed
inter_column_pipe_length DSP 列間に必要なパイプライン長 unsigned 4 1-16
column_config DSP モジュールの列数を指定 unsigned 1 使用される DSP マクロセルの数によって制限
config_method DSP モジュール列のコンフィギュレーション方法を指定 unsigned single single、by_channel
coeff_padding フィルターの先頭に 0 パディングを追加するかどうかを指定します。 bool false false

true

重要: 整数またはブール型ではないパラメーター値を指定する際は、HLS FIR 名前空間を使用する必要があります。たとえば、rate_change に使用可能な値は、表で integer および fixed_fractional と示されており、C プログラムでは rate_change = hls::ip_fir::integer および rate_change = hls::ip_fir::fixed_fractional を使用する必要があります。