CIC Compiler 4.0 - 2022.1 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2022-05-26
Version
2022.1 日本語

ザイリンクス CIC Compiler は、さまざまなザイリンクス FPGA デバイスに AXI4-Stream 準拠の Cascaded Integrator-Comb (CIC) フィルターをデザインおよびインプリメントします。

CIC フィルターは Hogenauer フィルターとも呼ばれ、デジタル システムで大きなサンプル レートの変更をインプリメントするためによく使用されるマルチレート フィルターです。一般的には、過剰なサンプルレートを必要とするアプリケーションに採用されます。つまり、デジタル ダウン コンバーター (DDC) およびデジタル アップ コンバーター (DUC) のように、システムのサンプル レートが処理された信号の帯域幅よりはるかに大きい場合です。CIC フィルターのインプリメンテーションは、加算器、減算器、および遅延エレメントのみを使用する構造になっています。これらの構造により、CIC フィルターは、マルチレートのフィルター処理をハードウェアで効率的に実現できます。

サンプル レートと CIC Compiler ブロック

CIC Compiler ブロックは、プログラム可能なレート変更オプションがあり、それが Simulink® ではサポートできないため、常にシステム レートで実行する必要があります。CIC Compiler ブロックの出力で新しいサンプルが使用可能になったときは、ready 出力信号を使用して、ダウンストリーム ブロックに通知する必要があります。

CIC はデータをダウンサンプリングしますが、サンプル レートはクロック レートのままになります。CIC Compiler ブロックの出力を見ると、R のレート変更に対して各出力データが R 回繰り返され、data_tvalid 信号が R サイクルごとに 1 回パルスしていることがわかります。ダウンストリームのブロックは、クロックがレート変更 R より遅くなることがなければ、システムより低いレートでクロックを供給できます。

これを処理するには、複数の方法があります。デザイン全体をシステム レートで動作させたまま、イネーブル付きレジスタまたはほかのブロックのイネーブルを使用して、正しいタイミングでデータを取り込むことができます。または、最小のレート変更 R に対応する Down Sample ブロックを使用して、それ以上のレート変更はイネーブル信号で処理することも可能です。

必要なレート変更が少ない場合は、MUX ブロックを使用して、異なるレート変更ごとに異なる Down Sample ブロックを使用できます。これは、レート変更によってダウンストリームのブロックが異なる場合に、レートごとに異なるパスを作成することになります。前述のように、イネーブルを使用するのが最も効率的であると考えられます。

CIC Compiler ブロックをプログラマブル モードで使用しない場合は、CIC Compiler の後に Up Sample/Down Sample ブロックを配置して、サンプル レートが正しくダウンストリーム ブロックに伝搬されるようにします。これらのブロックはこのレートを継承し、これらのダウンストリーム ブロックを新しいレートで有効にする CE 回路が自動的に構築されます。

ブロック パラメーター

Filter Specification タブ
Filter Specification タブには、次のパラメーターがあります。
[Filter Specification]
[Filter Type]
CIC コアは、補間および間引きアーキテクチャをサポートします。フィルター タイプに間引きを選択した場合、入力サンプル ストリームは係数 R でダウンサンプリングされ、補間を選択した場合、入力サンプルは R でアップサンプリングされます。
[Number of Stages]
積分器および櫛形フィルターの段数を指定します。段数 N を指定した場合、フィルターに N 段の積分器と N 段の櫛形フィルターが作成されます。このパラメーターの有効な範囲は 3 ~ 6 です。
[Differential Delay]
間引きまたは補間の櫛形フィルター セクションの各櫛形フィルターに適用する単位遅延の数。このパラメーターの有効な値は 1 または 2 です。
[Number of Channels]
インプリメンテーションでサポートされるチャネル数。このパラメーターの有効な範囲は 1 ~ 16 です。
[Sample Rate Change Specification]
[Sample Rate Changes]
[Fixed] または [Programmable] を選択します。
[Fixed or Initial Rate(ir)]
CIC のサンプル レート変更値を初期値または固定値で指定します。このパラメーターの有効な範囲は 4 ~ 8192 です。
[Minimum Rate]
プログラム可能なレート変更での最小レート変更値。このパラメーターの有効な範囲は 4 ~ 固定レート (ir) です。
[Maximum Rate]
プログラム可能なレート変更での最大レート変更値。このパラメーターの有効な範囲は、固定レート (ir) ~ 8192 です。
[Hardware Oversampling Specification]
[Select format]
[Maximum_Possible]、[Sample_Period]、[Hardware Oversampling Rate] のいずれかを選択します。ハードウェア オーバーサンプリング レートの指定方法を選択します。この値は、ブロック インプリメンテーションの並列処理のレベルおよび使用されるリソースに直接影響します。[Maximum Possible] を選択すると、s_axis_data_tdata ポートのデータ フィールドに接続された信号のサンプル周期に対応する最大オーバーサンプリングが使用されます。[Hardware Oversampling Rate] を選択すると、オーバーサンプリング レートをユーザーが指定できます。[Sample Period] を選択した場合、ブロックのクロックはシステム クロックに接続され、[Sample Period] に指定した値によりブロックでサポートされる入力サンプル レートが設定されます。[Sample Period] パラメーターは、ブロックのハードウェア オーバーサンプリング レートも決定します。[Sample Period] を選択すると、s_axis_data_tvalid 制御ポートが強制的に使用されます。
[Sample period]
入力サンプル間のクロック サイクル数。複数のチャネルを指定した場合、この値は、時分割多重化された入力サンプル データ ストリーム間のクロック サイクル数の整数倍である必要があります。
[Hardware Oversampling Rate]
フォーマットとして Hardware_Oversampling_Rate を選択した場合に、ハードウェア オーバーサンプリング レートを入力します。
Implementation タブ
[Numerical Precision]
[Quantization]
[Full_Precision] または [Truncation] を指定します。
注記: [Truncation] は、出力段階でのみ発生します。
[Output Data Width]
[Truncation] では、48 ビットまでの値を指定できます。
[Optional]
[Use Xtreme DSP slice]
ターゲット デバイスで可能な場合に XtremeDSP スライス (DSP48 タイプのエレメント) を使用するよう指定します。
Use Streaming Interface
複数チャネル インプリメンテーションのストリーミング インターフェイスを使用するかどうかを指定します。
[Control Options]
[ACLKEN]
ブロックにクロック イネーブル ポートがあるかどうかを指定します (CORE Generator GUI で [Has ACLKEN] オプションをオンにするのと同等)。
[ARESERTn]
ブロックがリセット ポートを持つよう指定します。アクティブ Low の同期クリアです。2 サイクル以上の ARESETn パルスが必要です。
[Has TREADY]
ブロックがデータ出力チャネル用の TREADY ポートを持つよう指定します (CORE Generator GUI で [Has_DOUT_TREADY] オプションをオンにするのと同等)。

このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。

LogiCORE 資料

『CIC Compiler LogiCORE IP 製品ガイド』 (PG140)