Complex Multiplier 6.0 - 2022.1 日本語

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

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

Complex Multiplier ブロックは、ユーザーが指定したオプションに基づいて、デバイスに AXI4-Stream 準拠の高性能で最適化された複素乗算器をインプリメントします。

2 つの被乗数入力とオプションの丸めビットは、スレーブ インターフェイスとして独立した AXI4-Stream チャネルで入力され、結果の積は AXI4-Stream マスター インターフェイスで出力されます。

各チャネル内で、オペランドおよび結果は、符号付き 2 の補数フォーマットで出力されます。オペランドや結果のビット幅はパラメーター指定可能です。

ブロック パラメーター

Page 1 タブ
Basic タブには、次のパラメーターがあります。
[Channel A Options]
Has TLAST
ブロックの A チャネルに tlast 入力ポートを追加します。
Has TUSER
ブロックの A チャネルに tuser 入力ポートを追加します。
TUSER Width
ユーザーが定義します (1 から 256 まで)。
[Channel B Options]
Has TLAST
ブロックの B チャネルに tlast 入力ポートを追加します。
Has TUSER
ブロックの B チャネルに tuser 入力ポートを追加します。
TUSER Width
ユーザー定義の値で、1 ~ 256 の値を指定します。
[Multiplier Construction Options]
Use_Mults
エンベデッドされた乗算器/XtremeDSP スライスを使用します。
Use_LUTs
乗算器を構築するのに、ファブリックの LUT を使用します。
Optimization Goal
[Use_Mults] が選択されている場合のみ使用可能です。
Resources
3 実数乗算構造を使用します。ただし、3-1 乗算構造でより多くの乗算リソースが使用される場合は、4 実数乗算構造が使用されます。
Performance
最高の周波数パフォーマンスを達成できるよう、常に 4 実数乗算構造を使用します。
Flow Control Options
Blocking
ブロッキング モードを選択します。このモードでは、1 つの入力チャネルにデータがない場合、データが別の入力チャネルで受信されたときに、演算の実行がブロックされます。
NonBlocking
ノンブロッキング モードを選択します。このモードでは、1 つの入力チャネルにデータがない場合でも、データが別の入力チャネルで受信されたときに、演算の実行はブロックされません。
[Page 2] タブ
[Output Product Range]

出力ビット幅を選択します。A および B のオペランド幅を設定すると、自動的に全精度の積になるように値が設定されます。出力は、必要に応じて符号拡張されます。

複素乗算の自然数の出力幅は、(APortWidth + BPortWidth + 1) です。出力幅をこれより狭く設定している場合、結果の最上位 (MSB) ビットが出力され、残りのビットは選択されている [Output Rounding] オプションに従って切り捨てられるか丸められます。つまり、出力の MSB は (APortWidth + BPortWidth) に固定されます。詳細は、https://japan.xilinx.com/cgi-bin/docs/ipdoc?c=cmpy;v=v6_0;d=pg104-cmpy.pdf の製品ガイドを参照してください。

Output Rounding
丸めが必要な場合、出力の LSB がゼロよりも大きい値である必要があります。
Truncate
出力を切り捨てます。
Random_Rounding
このオプションを選択すると、ブロックに ctrl_tvalid および ctrl_tdata の入力ポートが追加されます。ctrl_tdata 入力ポートが演算の丸めの種類を決定する場合はビット 0 です。詳細は、 『Complex Multiplier LogiCORE IP 製品ガイド』 (PG104) の丸めに関するセクションを参照してください。
[Channel CTRL Options]
[Random Rounding] を選択した場合、次のオプションが有効になります。
Has TLAST
ブロックに ctrl_tlast 入力ポートを追加します。
Has TUSER
ブロックに ctrl_user 入力ポートを追加します。
TUSER Width
Ctrl_tuser 入力ポートのビット幅を指定します。
[Output TLAST Behavior]
dout_tlast 入力ポートの動作を指定します。
Null
出力はヌルになります。
Pass_A_TLAST
a_tlast 入力ポートの値を dout_tlast 出力ポートに渡します。
Pass B_TLAST
b_tlast 入力ポートの値を dout_tlast 出力ポートに渡します。
Pass CTRL_TLAST
a_tlast 入力ポートの値を dout_tlast 出力ポートに渡します。
OR_all_TLASTS
表示されているすべての TLAST 入力ポートの論理 OR を渡します。
AND_all_TLASTS
表示されているすべての TLAST 入力ポートの論理 AND を渡します。
Core Latency
Latency Configuration
Automatic
最高のパフォーマンスを達成するため、Model Composer で基になる LogiCORE™ をパイプライン処理することにより、ブロックのレイテンシを自動的に決定します。
Manual
ブロック レイテンシを最小値を指定して調整します。
Minimum Latency
ブロック レイテンシの最小値を手動で指定します。
Control Signals
ACLKEN
コアのクロック イネーブル (aclken) を有効にします。コアのすべてのレジスタは、この制御信号により有効になります。
ARESETn
アクティブ Low の同期クリア入力。ACLKEN よりも優先されます。この信号にはパフォーマンスのため内部でレジスタが付けられているので、2 サイクル以上の ARESETn アクティブ パルスが必要です。1 サイクルのパルスでコアはリセットされますが、パルスに対する応答はその直後のサイクルでは現れません。
Advanced タブ
ブロック アイコンの表示
Display shortened port names
デフォルトでオンになっています。たとえば、オフになっている場合は、dout_tvalidm_axis_dout_tvalid になります。

LogiCORE 資料

『Complex Multiplier LogiCORE IP 製品ガイド』 (PG104)