FPGA 整数演算 IP コア

インテル FPGA 整数演算 IP コアのユーザーガイド
インテル® Quartus® Prime Design Suite 向けに更新: 20.3

オンライン版フィードバックを送信

UG-01063

ID:683490バージョン:2020.10.05

コンテンツ
コンテンツ
1. インテル FPGA 整数演算 IP コア……………………………………………………………….. 5
2. LPM_COUNTER (カウンター) IP コア………………………………………………………………………….. 7 2.1. 特徴………………………………………………………………………………………………………………7 2.2. Verilog HDL プロトタイプ……………………………………………………………………………….. 8 2.3. VHDL コンポーネント宣言………………………………………………………………….8 2.4. VHDL LIBRARY_USE宣言…………………………………………………………………… 9 2.5. ポート………………………………………………………………………………………………..9 2.6。 パラメータ……………………………………………………………………………………………………………… 10
3. LPM_DIVIDE (ディバイダー) インテル FPGA IP コア………………………………………………………….. 12 3.1. 特徴………………………………………………………………………………………………。 12 3.2. Verilog HDL プロトタイプ……………………………………………………………………………… 12 3.3. 13. VHDL コンポーネント宣言…………………………………………………………………….. 3.4 13. VHDL LIBRARY_USE宣言………………………………………………………………。 3.5 13。 ポート…………………………………………………………………………………………………… 3.6 14。 パラメータ……………………………………………………………………………………………………………… XNUMX
4. LPM_MULT (Multiplier) IP コア…………………………………………………………………………。 16 4.1. 特徴………………………………………………………………………………………………。 16 4.2. Verilog HDL プロトタイプ……………………………………………………………………………… 17 4.3. VHDL コンポーネント宣言………………………………………………………………………….. 17 4.4. VHDL LIBRARY_USE宣言………………………………………………………………。 17 4.5. 信号……………………………………………………………………………………………… 18 4.6. Stratix V、Arria V、Cyclone V、および Intel Cyclone 10 LP デバイスのパラメータ…………… 18 4.6.1. 一般的なタブ…………………………………………………………………………………18 4.6.2。 一般 2 タブ……………………………………………………………………………… 19 4.6.3. パイプライン タブ……………………………………………………………………………… 19 4.7. インテル Stratix 10、インテル Arria 10、およびインテル Cyclone 10 GX デバイスのパラメーター………….. 20 4.7.1. 一般的なタブ…………………………………………………………………………………20 4.7.2。 一般 2 タブ……………………………………………………………………………… 20 4.7.3. パイプライン…………………………………………………………………………………………21
5. LPM_ADD_SUB (加算器/減算器) ………………………………………………………………………… 22 5.1. 特徴………………………………………………………………………………………………。 22 5.2. Verilog HDL プロトタイプ……………………………………………………………………………… 23 5.3. 23. VHDL コンポーネント宣言…………………………………………………………………….. 5.4 23. VHDL LIBRARY_USE宣言………………………………………………………………。 5.5 23。 ポート…………………………………………………………………………………………………… 5.6 24. パラメータ…………………………………………………………………………………………………………………… XNUMX
6. LPM_COMPARE(コンパレータ)……………………………………………………………………………… 26 6.1. 特徴………………………………………………………………………………………………。 26 6.2. Verilog HDL プロトタイプ……………………………………………………………………………… 27 6.3. VHDL コンポーネント宣言………………………………………………………………………….. 27 6.4. VHDL LIBRARY_USE宣言………………………………………………………………。 27 6.5. ポート…………………………………………………………………………………………………… 27 6.6。 パラメータ…………………………………………………………………………………………………………………… 28

インテル FPGA 整数演算 IP コアのユーザーガイド 2

フィードバックを送信

コンテンツ

7. ALTECC (Error Correction Code: Encoder/Decoder) IPコア………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 30
7.1. ALTECC エンコーダーの機能…………………………………………………………………………..31 7.2. Verilog HDL プロトタイプ (ALTECC_ENCODER)………………………………………………。 32 7.3. Verilog HDL プロトタイプ (ALTECC_DECODER)………………………………………………。 32 7.4. 33. VHDL コンポーネント宣言(ALTECC_ENCODER)……………………………………………7.5 33. 7.6. VHDL コンポーネント宣言(ALTECC_DECODER)……………………………………………33 7.7. VHDL LIBRARY_USE宣言………………………………………………………………。 33 7.8. エンコーダポート………………………………………………………………………………………… 34 7.9. デコーダーポート………………………………………………………………………………………34 7.10。 エンコーダパラメータ……………………………………………………………………………………………… 35 XNUMX. デコーダーパラメーター………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
8. Intel FPGA Multiply Adder IP コア……………………………………………………………………。 36
8.1. 特徴………………………………………………………………………………………………。 37 8.1.1. 前置加算器……………………………………………………………………………….. 38 8.1.2. 収縮期遅延レジスタ……………………………………………………………….. 40 8.1.3. 予圧定数………………………………………………………………………… 43 8.1.4. ダブルアキュムレータ………………………………………………………………………… 43
8.2. Verilog HDL プロトタイプ……………………………………………………………………………… 44 8.3. 44. VHDL コンポーネント宣言…………………………………………………………………….. 8.4 44. VHDL LIBRARY_USE宣言………………………………………………………………。 8.5 44。 信号……………………………………………………………………………………………… 8.6 47. パラメータ……………………………………………………………………………………………………………………………… XNUMX
8.6.1. 一般的なタブ………………………………………………………………………………47。 エクストラモードタブ………………………………………………………………………….. 8.6.2 47. 乗数タブ………………………………………………………………………….. 8.6.3 49. プレッダータブ…………………………………………………………………………。 8.6.4 51. アキュムレータタブ…………………………………………………………………….. 8.6.5 53. シストリック/チェーンアウトタブ……………………………………………………………………。 8.6.6 55. [パイプライン] タブ……………………………………………………………………………………………………………… 8.6.7
9. ALTMEMMULT (メモリベースの定数係数乗算器) IP コア…………………… 57
9.1. 特徴………………………………………………………………………………………………。 57 9.2。 Verilog HDL プロトタイプ……………………………………………………………………………… 58 9.3. 58. VHDL コンポーネント宣言…………………………………………………………………….. 9.4 59. ポート…………………………………………………………………………………………………… 9.5 59。 パラメータ…………………………………………………………………………………………………………………… XNUMX
10. ALTMULT_ACCUM (Multiply-Accumulate) IP コア……………………………………………… 61
10.1. 特徴………………………………………………………………………………………….. 62 10.2. Verilog HDL プロトタイプ………………………………………………………………………………..62 10.3. 63. VHDL コンポーネント宣言…………………………………………………………………… 10.4 63. 10.5. VHDL LIBRARY_USE 宣言…………………………………………………………………63 ポート………………………………………………………………………………………………。 10.6 64. パラメーター…………………………………………………………………………………………。 XNUMX
11. ALTMULT_ADD (乗算加算器) IP コア…………………………………………………………..69
11.1. 特徴………………………………………………………………………………………….. 71 11.2. Verilog HDL プロトタイプ………………………………………………………………………………..72 11.3. 72. VHDL コンポーネント宣言………………………………………………………………………… 11.4 72. VHDL LIBRARY_USE 宣言…………………………………………………………………XNUMX

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 3

コンテンツ
11.5. ポート………………………………………………………………………………………………。 72 11.6. パラメーター…………………………………………………………………………………………。 73
12. ALTMULT_COMPLEX (複素数乗算器) IP コア……………………………………………… 86 12.1. 複雑な乗算………………………………………………………………………………。 86 12.2. 正規表現………………………………………………………………………… 87 12.3。 従来の表現……………………………………………………………………。 87 12.4. 特徴………………………………………………………………………………………….. 88 12.5。 Verilog HDL プロトタイプ………………………………………………………………………………..88 12.6. 89. VHDL コンポーネント宣言…………………………………………………………………… 12.7 89. 12.8. VHDL LIBRARY_USE 宣言…………………………………………………………………89 信号…………………………………………………………………………………………。 12.9 90。 パラメーター…………………………………………………………………………………………。 XNUMX
13. ALTSQRT (Integer Square Root) IP コア……………………………………………………………92 13.1. 特徴……………………………………………………………………………………………….. 92 13.2. Verilog HDL プロトタイプ………………………………………………………………………………..92 13.3. 93. VHDL コンポーネント宣言………………………………………………………………………… 13.4 93. 13.5. VHDL LIBRARY_USE 宣言…………………………………………………………………93 ポート………………………………………………………………………………………………。 13.6 94. パラメーター…………………………………………………………………………………………。 XNUMX
14. PARALLEL_ADD (並列加算器) IP コア……………………………………………………………….. 95 14.1. 特徴……………………………………………………………………………………………….95 14.2。 Verilog HDL プロトタイプ………………………………………………………………………………..95 14.3. 96. VHDL コンポーネント宣言………………………………………………………………………… 14.4 96. 14.5. VHDL LIBRARY_USE 宣言…………………………………………………………………96 ポート………………………………………………………………………………………………。 14.6 97. パラメーター…………………………………………………………………………………………。 XNUMX
15.整数算術IPコアユーザーガイドドキュメントアーカイブ…………………………………98
16. インテル FPGA 整数演算 IP コアのユーザーガイドの改訂履歴を文書化…. 99

インテル FPGA 整数演算 IP コアのユーザーガイド 4

フィードバックを送信

683490 | 2020.10.05フィードバックを送信

1. インテル FPGA 整数演算 IP コア

インテル® FPGA integer IP コアを使用して、デザインで数学演算を実行できます。

これらの関数は、独自の関数をコーディングするよりも効率的な論理合成とデバイスの実装を提供します。 設計要件に対応するように IP コアをカスタマイズできます。

インテルの整数演算 IP コアは、次の XNUMX つのカテゴリに分類されます。 · パラメータ化されたモジュールのライブラリ (LPM) IP コア · インテル固有 (ALT) IP コア

次の表に、整数演算 IP コアを示します。

表1.

IP コアのリスト

IP コア

LPM IP コア

LPM_COUNTER

LPM_DIVIDE

LPM_MULT

LPM_ADD_SUB
LPM_COMPARE
Intel 固有 (ALT) IP コア ALTECC

機能オーバーview カウンター除算乗数
加算器または減算器 コンパレータ
ECC エンコーダー/デコーダー

対応デバイス
Arria® II GX、Arria II GZ、Arria V、Intel Arria 10、Cyclone® IV E、Cyclone IV GX、Cyclone V、Intel Cyclone 10 LP、
インテル Cyclone 10 GX、MAX® II、MAX V、MAX 10、Stratix® IV、Stratix V
Arria II GX、Arria II GZ、Arria V、インテル Arria 10、Cyclone IV E、Cyclone IV GX、
Cyclone V、インテル Cyclone 10 LP、インテル Cyclone 10 GX、MAX II、MAX V、MAX 10、Stratix IV、Stratix V、インテル Stratix 10
Arria II GX、Arria II GZ、Arria V、インテル Arria 10、Cyclone IV E、Cyclone IV GX、
Cyclone V、インテル Cyclone 10 LP、インテル Cyclone 10 GX、MAX II、MAX V、MAX 10、Stratix IV、Stratix V、インテル Stratix 10
Arria II GX、Arria II GZ、Arria V、Cyclone IV E、Cyclone IV GX、Cyclone V、Intel Cyclone 10 LP、MAX 10、MAX
II、MAX V、Stratix IV、Stratix V
Arria II GX、Arria II GZ、Arria V、Cyclone IV E、Cyclone IV GX、Cyclone V、Intel Cyclone 10 LP、MAX 10、MAX
II、MAX V、Stratix IV、Stratix V
Arria II GX、Arria II GZ、Arria V、インテル Arria 10、Cyclone IV E、Cyclone IV GX、
サイクロン V、インテル サイクロン 10 LP、インテル サイクロン 10 GX、MAX II、MAX V、MAX
10、Stratix IV、Stratix V 続き…

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

1. インテル FPGA 整数演算 IP コア 683490 | 2020.10.05

IP コア Intel FPGA Multiply Adder または ALTERA_MULT_ADD ALTMEMMULT
ALTMULT_ACCUM ALTMULT_ADD ALTMULT_COMPLEX
ALTSQRT
PARALLEL_ADD

機能オーバーview 乗加算器
メモリベースの定数係数乗算器
乗算器-アキュムレータ 乗算器-加算器
複雑な乗数
整数平方根
並列加算器

対応デバイス
Arria V、Stratix V、Cyclone V、Intel Stratix 10、Intel Arria 10、Intel Cyclone
10GX
Arria II GX、Arria II GZ、Arria V、インテル Arria 10 (インテル Quartus® Prime スタンダード・エディション)、Cyclone IV E、Cyclone IV GX、Cyclone V、インテル
Cyclone 10 LP、MAX II、MAX V、MAX 10、Stratix IV、Stratix V
Arria II GX、Arria II GZ、Cyclone IV E、Cyclone IV GX、Intel Cyclone 10 LP、MAX 10、MAX II、MAX V、Stratix IV
Arria II GX、Arria II GZ、Cyclone IV E、Cyclone IV GX、Intel Cyclone 10 LP、MAX 10、MAX II、MAX V、Stratix IV
Arria II GX、Arria II GZ、インテル Arria 10、Arria V、Arria V GZ、サイクロン IV E、サイクロン IV GX、サイクロン V、インテル
Cyclone 10 GX、Intel Cyclone 10 LP、MAX 10、Stratix V、Intel Stratix 10
Arria II GX、Arria II GZ、Arria V、インテル Arria 10、Cyclone IV E、Cyclone IV GX、
Cyclone V、インテル Cyclone 10 LP、インテル Cyclone 10 GX、MAX II、MAX V、MAX
10、Stratix IV、Stratix V
Arria II GX、Arria II GZ、Arria V、インテル Arria 10、Cyclone IV E、Cyclone IV GX、
Cyclone V、Intel Cyclone 10 LP、Intel Cyclone 10 GX、MAX II、MAX V、MAX
10、Stratix IV、Stratix V

関連情報
· インテル FPGA およびプログラマブル デバイスのリリース ノート
· インテル FPGA IP コアの紹介 インテル FPGA IP コアに関する詳細情報を提供します。
· Floating-Point IP Cores User Guide Intel FPGA Floating-Point IP コアに関する詳細情報を提供します。
· インテル FPGA IP コアの紹介 IP コアのパラメーター化、生成、アップグレード、シミュレーションなど、すべてのインテル FPGA IP コアに関する一般的な情報を提供します。
· バージョンに依存しない IP および Qsys シミュレーション スクリプトの作成 ソフトウェアまたは IP バージョンのアップグレードのために手動で更新する必要のないシミュレーション スクリプトを作成します。
· プロジェクトと IP の効率的な管理と移植性のためのプロジェクト管理ベスト プラクティス ガイドライン files.
· 整数演算 IP コア ユーザー ガイド ドキュメント アーカイブ (98 ページ) 整数演算 IP コアの以前のバージョンのユーザー ガイドのリストを提供します。

インテル FPGA 整数演算 IP コアのユーザーガイド 6

フィードバックを送信

683490 | 2020.10.05フィードバックを送信

2. LPM_COUNTER (カウンター) IP コア

図1.

LPM_COUNTER IP コアは、最大 256 ビット幅の出力を持つアップ カウンター、ダウン カウンター、およびアップまたはダウン カウンターを作成するバイナリ カウンターです。

次の図は、LPM_COUNTER IP コアのポートを示しています。

LPM_COUNTER ポート

LPM_COUNTER

ssclr sload セット データ[]

q[]

上下

カウント

aclrアセットをロード

clk_en cnt_en cin
インスト

2.1. 特徴
LPM_COUNTER IP コアは、次の機能を提供します。 · アップ、ダウン、およびアップ/ダウン カウンターを生成する · 次のカウンター タイプを生成する:
— プレーン バイナリ – カウンターはゼロからインクリメントするか、255 からデクリメントします。
— モジュラス - カウンタは、ユーザーが指定したモジュラス値まで増加または減少し、繰り返します。
· オプションの同期クリア、ロード、およびセット入力ポートをサポート · オプションの非同期クリア、ロード、およびセット入力ポートをサポート · オプションのカウント イネーブルおよびクロック イネーブル入力ポートをサポート · オプションのキャリーインおよびキャリーアウト ポートをサポート

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

2. LPM_COUNTER (カウンター) IP コア
683490 | 2020.10.05
2.2. Verilog HDL プロトタイプ
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール lpm_counter ( q, data, clock, cin, cout, clk_en, cnt_en, updown, aset, aclr, aload, sset, sclr, sload, eq ); パラメータ lpm_type = “lpm_counter”; パラメータ lpm_width = 1; パラメータ lpm_modulus = 0; パラメータ lpm_direction = “未使用”; パラメータ lpm_avalue = “未使用”; パラメータ lpm_svalue = “未使用”; パラメータ lpm_pvalue = “未使用”; パラメータ lpm_port_updown = “PORT_CONNECTIVITY”; パラメータ lpm_hint = “未使用”; 出力 [lpm_width-1:0] q; 出力カウント; 出力 [15:0] eq; 入力cin; 入力 [lpm_width-1:0] データ; 入力クロック、clk_en、cnt_en、updown; 入力 aset、aclr、aload; 入力sset、sclr、sload; エンドモジュール
2.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) LPM_PACK.vhd 内librariesvhdllpm ディレクトリ。
component LPM_COUNTER generic ( LPM_WIDTH : 自然; LPM_MODULUS : 自然 := 0; LPM_DIRECTION : 文字列 := 「未使用」; LPM_AVALUE : 文字列 := 「未使用」; LPM_SVALUE : 文字列 := 「未使用」; LPM_PORT_UPDOWN : 文字列 := 「PORT_CONNECTIVITY」 ; LPM_PVALUE : 文字列 := “未使用”; LPM_TYPE : 文字列 := L_COUNTER; LPM_HINT : 文字列 := “未使用”); ポート (DATA : in std_logic_vector(LPM_WIDTH-1 downto 0):= (OTHERS =>
'0'); CLOCK : std_logic 内。 CLK_EN : in std_logic := '1'; CNT_EN : in std_logic := '1'; UPDOWN : in std_logic := '1'; SLOAD : in std_logic := '0'; SSET : in std_logic := '0'; SCLR : in std_logic := '0'; ALOAD : in std_logic := '0'; ASET : in std_logic := '0'; ACLR : in std_logic := '0'; CIN : in std_logic := '1'; COUT : out std_logic := '0'; Q : out std_logic_vector(LPM_WIDTH-1 downto 0); EQ : out std_logic_vector(15 downto 0));
エンドコンポーネント;

インテル FPGA 整数演算 IP コアのユーザーガイド 8

フィードバックを送信

2. LPM_COUNTER (カウンター) IP コア 683490 | 2020.10.05

2.4. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリ lpm; lpm.lpm_components.all を使用します。

2.5. ポート

次の表に、LPM_COUNTER IP コアの入力ポートと出力ポートを示します。

表2.

LPM_COUNTER 入力ポート

ポート名

必須

説明

データ[]

いいえ

カウンターへのパラレルデータ入力。 入力ポートのサイズは、LPM_WIDTH パラメーター値によって異なります。

クロック

はい

立ち上がりエッジでトリガーされるクロック入力。

clk_jp

いいえ

すべての同期アクティビティを有効にするクロック イネーブル入力。 省略した場合、デフォルト値は 1 です。

cnt_ja

いいえ

sload、sset、または sclr に影響を与えることなく Low にアサートされたときにカウントを無効にするカウント イネーブル入力。 省略した場合、デフォルト値は 1 です。

上下

いいえ

カウントの方向を制御します。 ハイ (1) にアサートされるとカウント方向はアップになり、ロー (0) にアサートされるとカウント方向はダウンになります。 LPM_DIRECTION パラメータが使用されている場合、アップダウン ポートは接続できません。 LPM_DIRECTION を使用しない場合、アップダウン ポートはオプションです。 省略した場合、デフォルト値は up (1) です。

シン

いいえ

下位ビットへのキャリーイン。 アップ カウンターの場合、cin 入力の動作は次のとおりです。

cnt_en 入力の動作と同じです。 省略した場合のデフォルト値は 1 です。

(VCC)。

aclr

いいえ

非同期クリア入力。 aset と aclr の両方が使用され、アサートされている場合、aclr は aset をオーバーライドします。 省略した場合、デフォルト値は 0 (無効) です。

アセット

いいえ

非同期セット入力。 q[] 出力をすべて 1 として指定するか、LPM_AVALUE パラメータで指定された値に指定します。 aset ポートと aclr ポートの両方が使用され、アサートされている場合、aclr ポートの値が aset ポートの値をオーバーライドします。 省略した場合、デフォルト値は 0 (無効) です。

ロード

いいえ

データ入力の値をカウンターに非同期的にロードする非同期ロード入力。 aload ポートを使用する場合は、data[] ポートを接続する必要があります。 省略した場合、デフォルト値は 0 (無効) です。

スクロール

いいえ

次のアクティブ クロック エッジでカウンターをクリアする同期クリア入力。 sset ポートと sclr ポートの両方が使用され、アサートされている場合、sclr ポートの値が sset ポートの値をオーバーライドします。 省略した場合、デフォルト値は 0 (無効) です。

セット

いいえ

次のアクティブなクロック エッジでカウンターを設定する同期設定入力。 q 出力の値をすべて 1 として指定するか、LPM_SVALUE パラメータで指定された値に指定します。 sset ポートと sclr ポートの両方が使用され、アサートされている場合、
sclr ポートの値は、sset ポートの値をオーバーライドします。 省略した場合、デフォルト値は 0 (無効) です。

スロード

いいえ

次のアクティブ クロック エッジでカウンターに data[] をロードする同期ロード入力。 sload ポートを使用する場合は、data[] ポートを接続する必要があります。 省略した場合、デフォルト値は 0 (無効) です。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 9

2. LPM_COUNTER (カウンター) IP コア 683490 | 2020.10.05

表3.

LPM_COUNTER 出力ポート

ポート名

必須

説明

q[]

いいえ

カウンターからのデータ出力。 出力ポートのサイズは、

LPM_WIDTH パラメータ値。 q[] または eq[15..0] ポートの少なくとも XNUMX つ

接続する必要があります。

式[15..0]

いいえ

カウンターデコード出力。 パラメーターは AHDL のみをサポートするため、eq[15..0] ポートはパラメーター エディターでアクセスできません。
q[] ポートまたは eq[] ポートのいずれかを接続する必要があります。 c eq ポートまで使用できます (0 <= c <= 15)。 16 個の最小カウント値のみがデコードされます。 カウント値が c の場合、eqc 出力は High (1) にアサートされます。 例えばampつまり、カウントが 0 の場合は eq0 = 1、カウントが 1 の場合は eq1 = 1、カウントが 15 の場合は eq 15 = 1 です。カウント値が 16 以上の場合のデコード出力には、外部デコードが必要です。 eq[15..0] 出力は q[] 出力とは非同期です。

カウント

いいえ

カウンタの MSB ビットのキャリーアウト ポート。 別のカウンターに接続して、より大きなカウンターを作成するために使用できます。

2.6。 パラメーター

次の表に、LPM_COUNTER IP コアのパラメーターを示します。

表4.

LPM_COUNTER パラメータ

パラメータ名

タイプ

LPM_WIDTH

整数

LPM_DIRECTION

LPM_MODULUS LPM_AVALUE

整数
整数/文字列

LPM_SVALUE LPM_HINT

整数/文字列

LPM_TYPE

必須 はい いいえ いいえ いいえ
いいえ いいえ
いいえ

説明
data[] および q[] ポートが使用されている場合、それらの幅を指定します。
値は、UP、DOWN、および UNUSED です。 LPM_DIRECTION パラメータが使用されている場合、アップダウン ポートは接続できません。 アップダウン ポートが接続されていない場合、LPM_DIRECTION パラメータのデフォルト値は UP です。
最大カウント + XNUMX。 カウンターのサイクルにおける一意の状態の数。 ロード値が LPM_MODULUS パラメーターより大きい場合、カウンターの動作は指定されません。
aset が High にアサートされたときにロードされる定数値。 指定した値が以上の場合、カウンタの動作は未定義 (X) 論理レベルです。 存在する場合は LPM_MODULUS、または 2 ^ LPM_WIDTH です。 インテルは、この値を AHDL デザインの XNUMX 進数として指定することをお勧めします。
sset ポートが High にアサートされたときに、クロック ポートの立ち上がりエッジにロードされる定数値。 インテルは、この値を AHDL デザインの XNUMX 進数として指定することをお勧めします。
VHDL デザインでパラメーター化されたモジュール (LPM) 関数のライブラリをインスタンス化する場合 File (.vhd)、LPM_HINT パラメーターを使用して Intel 固有のパラメーターを指定する必要があります。 例えばampファイル: LPM_HINT = “CHAIN_SIZE = 8、ONE_INPUT_IS_CONSTANT = YES”
デフォルト値は UNUSED です。
VHDL デザインのパラメータ化されたモジュール (LPM) エンティティ名のライブラリを識別します files.
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 10

フィードバックを送信

2. LPM_COUNTER (カウンター) IP コア 683490 | 2020.10.05

パラメータ名 INTENDED_DEVICE_FAMILY CARRY_CNT_EN
LABWIDE_SCLR
LPM_PORT_UPDOWN

タイプ文字列文字列

必須 いいえ いいえ
いいえ
いいえ

説明
このパラメーターは、モデリングおよびビヘイビアー シミュレーションの目的で使用されます。 このパラメーターは、モデリングおよびビヘイビアー シミュレーションの目的で使用されます。 パラメータ エディタは、このパラメータの値を計算します。
Intel 固有のパラメーター。 VHDL デザインで CARRY_CNT_EN パラメーターを指定するには、LPM_HINT パラメーターを使用する必要があります。 file秒。 値は、SMART、ON、OFF、および UNUSED です。 LPM_COUNTER 関数がキャリー チェーンを介して cnt_en 信号を伝搬できるようにします。 場合によっては、CARRY_CNT_EN パラメーターの設定が速度にわずかな影響を与える可能性があるため、オフにすることをお勧めします。 デフォルト値は SMART で、サイズと速度の最適なトレードオフを提供します。
Intel 固有のパラメーター。 VHDL デザインで LABWIDE_SCLR パラメーターを指定するには、LPM_HINT パラメーターを使用する必要があります。 file秒。 値は、ON、OFF、または UNUSED です。 デフォルト値はオンです。 廃止されたデバイス ファミリに見られる LABwide sclr 機能の使用を無効にすることができます。 このオプションをオフにすると、部分的に満たされた LAB を完全に使用できる可能性が高くなるため、SCLR が完全な LAB に適用されない場合にロジック密度を高くすることができます。 このパラメーターは下位互換性のために利用可能であり、Intel はこのパラメーターを使用しないことをお勧めします。
アップダウン入力ポートの使用法を指定します。 省略した場合、デフォルト値は PORT_CONNECTIVITY です。 ポート値が PORT_USED に設定されている場合、ポートは使用済みとして扱われます。 ポート値が PORT_UNUSED に設定されている場合、ポートは未使用として扱われます。 ポートの値が PORT_CONNECTIVITY に設定されている場合、ポートの接続をチェックすることによって、ポートの使用状況が決定されます。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 11

683490 | 2020.10.05フィードバックを送信

3. LPM_DIVIDE (Divider) インテル FPGA IP コア

図2.

LPM_DIVIDE Intel FPGA IP コアは除算器を実装して分子入力値を分母入力値で割り、商と剰余を生成します。

次の図は、LPM_DIVIDE IP コアのポートを示しています。

LPM_DIVIDE ポート

LPM_DIVIDE

numer[] denom[] クロック

商[] 残り[]

クケンACLR

インスト

3.1. 特徴
LPM_DIVIDE IP コアは、次の機能を提供します。 · 分子入力値を分母入力で除算する除算器を生成します。
商と剰余を生成する値。 ・データ幅1bitに対応。 · 両方の分子に対して符号付きおよび符号なしのデータ表現形式をサポート
と分母の値。 · エリアまたは速度の最適化をサポートします。 · 正の剰余出力を指定するオプションを提供します。 · 構成可能な出力レイテンシのパイプライン処理をサポートします。 · オプションの非同期クリアおよびクロック イネーブル ポートをサポート。

3.2. Verilog HDL プロトタイプ
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール lpm_divide (商、残り、数値、denom、クロック、clken、aclr); パラメータ lpm_type = “lpm_divide”; パラメータ lpm_widthn = 1; パラメータ lpm_widthd = 1; パラメータ lpm_nrepresentation = “UNSIGNED”; パラメータ lpm_drepresentation = “UNSIGNED”; パラメータ lpm_remainderpositive = “TRUE”; パラメータ lpm_pipeline = 0;

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

3. LPM_DIVIDE (Divider) インテル FPGA IP コア 683490 | 2020.10.05

パラメータ lpm_hint = “未使用”; 入力クロック; 入力 clken; 入力 ACLR; 入力 [lpm_widthn-1:0] 数値; 入力 [lpm_widthd-1:0] denom; 出力 [lpm_widthn-1:0] 商; 出力 [lpm_widthd-1:0] が残ります。 エンドモジュール

3.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) LPM_PACK.vhd 内librariesvhdllpm ディレクトリ。
コンポーネント LPM_DIVIDE ジェネリック (LPM_WIDTHN : 自然; LPM_WIDTHD : 自然;
LPM_NREPRESENTATION : 文字列 := "UNSIGNED"; LPM_DREPRESENTATION : 文字列 := "UNSIGNED"; LPM_PIPELINE : 自然 := 0; LPM_TYPE : 文字列 := L_DIVIDE; LPM_HINT : 文字列 := "未使用"); port (NUMER : in std_logic_vector(LPM_WIDTHN-1 downto 0); DENOM : in std_logic_vector(LPM_WIDTHD-1 downto 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; QUOTIENT : out std_logic_vector(LPM_WIDTHN-1 downto 0); REMAIN : out std_logic_vector(LPM_WIDTHD-1 downto 0)); エンドコンポーネント;

3.4. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリ lpm; lpm.lpm_components.all を使用します。

3.5. ポート

次の表に、LPM_DIVIDE IP コアの入力ポートと出力ポートを示します。

表5.

LPM_DIVIDE 入力ポート

ポート名

必須

数値[]

はい

デニム[]

はい

説明
分子データ入力。 入力ポートのサイズは、LPM_WIDTHN パラメーター値によって異なります。
分母データ入力。 入力ポートのサイズは、LPM_WIDTHD パラメーター値によって異なります。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 13

3. LPM_DIVIDE (Divider) インテル FPGA IP コア 683490 | 2020.10.05

ポート名 clock clken
aclr

必須 いいえ いいえ
いいえ

説明
パイプラインで使用するためのクロック入力。 0 (デフォルト) 以外の LPM_PIPELINE 値の場合、クロック ポートを有効にする必要があります。
クロック イネーブル パイプラインの使用。 clken ポートが High にアサートされると、除算操作が行われます。 信号が Low の場合、動作は発生しません。 省略した場合、デフォルト値は 1 です。
クロック入力に対して非同期でパイプラインをすべて「0」にリセットするためにいつでも使用される非同期クリア ポート。

表6.

LPM_DIVIDE 出力ポート

ポート名

必須

説明

商[]

はい

データ出力。 出力ポートのサイズは LPM_WIDTHN に依存します

パラメータ値。

残る[]

はい

データ出力。 出力ポートのサイズは LPM_WIDTHD によって異なります

パラメータ値。

3.6。 パラメーター

次の表に、LPM_DIVIDE Intel FPGA IP コアのパラメーターを示します。

パラメータ名

タイプ

必須

説明

LPM_WIDTHN

整数

はい

numer[] の幅を指定し、

商 [] ポート。 値は 1 ~ 64 です。

LPM_WIDTHD

整数

はい

denom[] の幅を指定し、

[] ポートのままです。 値は 1 ~ 64 です。

LPM_NREPRESENTATION LPM_DREPRESENTATION

文字列文字列

いいえ

分子入力の符号表現。

値は SIGNED および UNSIGNED です。 このとき

パラメータは SIGNED に設定され、除算器

numer[] 入力を符号付き XNUMX として解釈します

補体。

いいえ

分母入力の符号表現。

値は SIGNED および UNSIGNED です。 このとき

パラメータは SIGNED に設定され、除算器

denom[] 入力を符号付き XNUMX として解釈します

補体。

LPM_TYPE

いいえ

パラメータ化されたライブラリを識別します

モジュール (LPM) VHDL デザインのエンティティ名

files (.vhd)。

LPM_HINT

いいえ

のライブラリをインスタンス化するとき

パラメータ化されたモジュール (LPM) 関数

VHDL 設計 File (.vhd) を使用する必要があります。

LPM_HINT パラメーターを指定して Intel-

特定のパラメータ。 例えばampファイル: LPM_HINT

= "CHAIN_SIZE = 8,

ONE_INPUT_IS_CONSTANT = YES」

デフォルト値は未使用です。

LPM_REMAINDERPOSITIVE

いいえ

Intel 固有のパラメーター。 を使用する必要があります。

LPM_HINT パラメータを指定して、

LPM_REMAINDERPOSITIVE パラメータ

VHDL 設計 file秒。 値は TRUE または FALSE です。

このパラメータが TRUE に設定されている場合、

leave[] ポートの値はより大きくする必要があります

続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 14

フィードバックを送信

3. LPM_DIVIDE (Divider) インテル FPGA IP コア 683490 | 2020.10.05

パラメータ名

タイプ

MAXIMIZE_SPEED

整数

LPM_PIPELINE

整数

INTENDED_DEVICE_FAMILY SKIP_BITS

文字列整数

必須 いいえ
いいえ、いいえ、いいえ

説明
ゼロ以上。 このパラメーターが TRUE に設定されている場合、remain[] ポートの値はゼロであるか、数値ポートの値と同じ正または負の符号です。 面積を削減して速度を向上させるために、インテルは、剰余が正でなければならない操作、または剰余が重要でない操作では、このパラメーターを TRUE に設定することをお勧めします。
Intel 固有のパラメーター。 VHDL デザインで MAXIMIZE_SPEED パラメーターを指定するには、LPM_HINT パラメーターを使用する必要があります。 file秒。 値は [0..9] です。 使用されている場合、 インテル Quartus Prime ソフトウェアは、LPM_DIVIDE 関数の特定のインスタンスを配線可能性ではなく速度のために最適化しようとし、Optimization Technique ロジック オプションの設定をオーバーライドします。 MAXIMIZE_SPEED が使用されていない場合は、代わりに Optimization Technique オプションの値が使用されます。 MAXIMIZE_SPEED の値が 6 以上の場合、Compiler はキャリー チェーンを使用して LPM_DIVIDE IP コアをより高速に最適化します。 値が 5 以下の場合、コンパイラはキャリー チェーンなしでデザインをインプリメントします。
quotient[] および leave[] 出力に関連するレイテンシのクロック サイクル数を指定します。 ゼロ (0) の値は、レイテンシが存在せず、純粋な組み合わせ関数がインスタンス化されていることを示します。 省略した場合、デフォルト値は 0 (非パイプライン) です。 LPM_WIDTHN より大きい値を LPM_PIPELINE パラメーターに指定することはできません。
このパラメーターは、モデリングおよびビヘイビアー シミュレーションの目的で使用されます。 パラメータ エディタは、このパラメータの値を計算します。
LPM_DIVIDE IP コアに先行 GND の数を提供することにより、先行ビットのロジックを最適化するためのより効率的な小数ビット分割を可能にします。 このパラメータには、商出力の先頭の GND の数を指定します。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 15

683490 | 2020.10.05フィードバックを送信

4. LPM_MULT (乗算器) IP コア

図3.

LPM_MULT IP コアは乗算器を実装して、XNUMX つの入力データ値を乗算し、積を出力として生成します。

次の図は、LPM_MULT IP コアのポートを示しています。

LPM_マルチポート

LPM_MULT クロック dataa[] result[] datab[] aclr/sclr clken
インスト

関連情報 機能 (71 ページ)

4.1. 特徴
LPM_MULT IP コアは、次の機能を提供します。 · 1 つの入力データ値を乗算する乗算器を生成 · 256 ビットのデータ幅をサポート · 符号付きおよび符号なしデータ表現形式をサポート · エリアまたは速度の最適化をサポート · 設定可能な出力レイテンシによるパイプライン処理をサポート専用のデジタル信号処理 (DSP) に実装するためのオプション
ブロック回路または論理要素 (LE) 注: ネイティブでサポートされているサイズよりも大きな乗算器を構築する場合、/
DSP ブロックのカスケード接続によるパフォーマンスへの影響があります。 · オプションの非同期クリアおよびクロック イネーブル入力ポートをサポート · Intel Stratix 10、Intel Arria 10、および Intel Cyclone 10 GX デバイスのオプションの同期クリアをサポート

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

4. LPM_MULT (乗算器) IP コア 683490 | 2020.10.05
4.2. Verilog HDL プロトタイプ
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール lpm_mult (結果、dataa、datab、合計、クロック、clken、aclr) パラメータ lpm_type = “lpm_mult”; パラメータ lpm_widtha = 1; パラメータ lpm_widthb = 1; パラメータ lpm_widths = 1; パラメータ lpm_widthp = 1; パラメータ lpm_representation = “UNSIGNED”; パラメータ lpm_pipeline = 0; パラメータ lpm_hint = “未使用”; 入力クロック; 入力 clken; 入力 ACLR; 入力 [lpm_widtha-1:0] dataa; 入力 [lpm_widthb-1:0] datab; 入力 [lpm_widths-1:0] 合計; 出力 [lpm_widthp-1:0] 結果; エンドモジュール
4.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) LPM_PACK.vhd 内librariesvhdllpm ディレクトリ。
コンポーネント LPM_MULT ジェネリック ( LPM_WIDTHA : 自然; LPM_WIDTHB : 自然; LPM_WIDTHS : 自然 := 1; LPM_WIDTHP : 自然;
LPM_REPRESENTATION : 文字列 := "UNSIGNED"; LPM_PIPELINE : 自然 := 0; LPM_TYPE: 文字列:= L_MULT; LPM_HINT : 文字列 := "未使用"); port ( DATAA : in std_logic_vector(LPM_WIDTHA-1 downto 0); DATAB : in std_logic_vector(LPM_WIDTHB-1 downto 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; SUM : in std_logic_vector(LPM_WIDTHS-1 downto 0) := (OTHERS => '0'); RESULT : out std_logic_vector(LPM_WIDTHP-1 downto 0)); エンドコンポーネント;
4.4. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリ lpm; lpm.lpm_components.all を使用します。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 17

4. LPM_MULT (乗算器) IP コア 683490 | 2020.10.05

4.5。 信号

表7.

LPM_MULT 入力信号

信号名

必須

説明

データ[]

はい

データ入力。

インテル Stratix 10、インテル Arria 10、および インテル Cyclone 10 GX デバイスの場合、入力信号のサイズは Dataa width パラメーター値によって異なります。

古いインテル Cyclone 10 LP デバイスの場合、入力信号のサイズは LPM_WIDTHA パラメーター値によって異なります。

データベース[]

はい

データ入力。

インテル Stratix 10、インテル Arria 10、および インテル Cyclone 10 GX デバイスの場合、入力信号のサイズは Datab width パラメーター値によって異なります。

古いインテル Cyclone 10 LP デバイスの場合、入力信号のサイズは

LPM_WIDTHB パラメーター値。

クロック

いいえ

パイプラインで使用するためのクロック入力。

古いインテル Cyclone 10 LP デバイスの場合、0 (デフォルト) 以外の LPM_PIPELINE 値に対してクロック信号を有効にする必要があります。

インテル Stratix 10、インテル Arria 10、インテル Cyclone 10 GX デバイスでは、レイテンシー値が 1 (デフォルト) 以外の場合、クロック信号を有効にする必要があります。

クロックン

いいえ

パイプライン使用のためのクロック イネーブル。 clken 信号が High にアサートされると、

加減算演算が行われます。 信号が低いときは動作しません

発生します。 省略した場合、デフォルト値は 1 です。

aclr sclr

いいえ

パイプラインをすべて 0 にリセットするためにいつでも使用される非同期クリア信号。

クロック信号に非同期で。 パイプラインは未定義 (X) に初期化されます

ロジックレベル。 出力は一貫していますが、ゼロ以外の値です。

いいえ

パイプラインをすべて 0 にリセットするためにいつでも使用される同期クリア信号

クロック信号に同期します。 パイプラインは未定義 (X) に初期化されます

ロジックレベル。 出力は一貫していますが、ゼロ以外の値です。

表8.

LPM_MULT 出力信号

信号名

必須

説明

結果[]

はい

データ出力。

古いインテル Cyclone 10 LP デバイスの場合、出力信号のサイズは LPM_WIDTHP パラメーター値によって異なります。 LPM_WIDTHP < max (LPM_WIDTHA + LPM_WIDTHB, LPM_WIDTHS) または (LPM_WIDTHA + LPM_WIDTHS) の場合、LPM_WIDTHP MSB のみが存在します。

インテル Stratix 10、インテル Arria 10、およびインテル Cyclone 10 GX の場合、出力信号のサイズは Result width パラメーターによって異なります。

4.6. Stratix V、Arria V、Cyclone V、および Intel Cyclone 10 LP デバイスのパラメーター

4.6.1. 一般タブ

表9.

一般タブ

パラメータ

価値

乗算器の設定

'dataa' 入力と 'datab' 入力を乗算します

デフォルト値

説明

'dataa' 入力と 'datab' 入力を乗算します

乗算器の目的の構成を選択します。
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 18

フィードバックを送信

4. LPM_MULT (乗算器) IP コア 683490 | 2020.10.05

パラメータ
「dataa」入力の幅はどれくらいですか? 「datab」入力の幅はどれくらいですか? 「結果」出力の幅はどのように決定する必要がありますか? 幅を制限する

価値
'dataa' 入力をそれ自体で乗算 (XNUMX 乗演算)
1〜256ビット

デフォルト値

説明

8ビット

dataa[] ポートの幅を指定します。

1〜256ビット

8ビット

datab[] ポートの幅を指定します。

幅を自動計算する 幅を制限する
1〜512ビット

自動的に幅を計算します

result[] ポートの幅を決定する方法を選択します。

16ビット

result[] ポートの幅を指定します。
この値は、[タイプ] パラメーターで [幅を制限する] を選択した場合にのみ有効です。

4.6.2. 一般 2 タブ

表 10. 一般 2 タブ

パラメータ

価値

データ入力

「datab」入力バスには定数値がありますか?

いいえ はい

乗算タイプ

どのタイプの

署名なし

掛け算したいですか? 署名済み

実装

どの乗算器の実装を使用する必要がありますか?

デフォルトの実装を使用する
専用の乗算器回路を使用します (すべてのファミリで使用できるわけではありません)。
論理要素を使用する

デフォルト値

説明

いいえ

の定数値を指定するには、[はい] を選択します。

'datab' 入力バス (存在する場合)。

署名なし

dataa[] および datab[] 入力の両方の表現形式を指定します。

デフォルトの実装を使用する

result[] ポートの幅を決定する方法を選択します。

4.6.3. パイプライン タブ

表 11. パイプライン タブ

パラメータ

いいえをパイプラインしますか

関数?

はい

価値

「aclr」を作成します

非同期クリア ポート

デフォルト値

説明

いいえ

[はい] を選択してパイプライン レジスタを有効にします。

乗算器の出力を指定し、目的の

クロック サイクルでの出力レイテンシ。 を有効にする

パイプライン レジスタは、余分なレイテンシを追加します。

出力。

未チェック

aclr ポートがパイプライン レジスタの非同期クリアを使用できるようにするには、このオプションを選択します。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 19

4. LPM_MULT (乗算器) IP コア 683490 | 2020.10.05

パラメータ
「clken」クロック イネーブル クロックを作成します。
最適化
どのタイプの最適化が必要ですか?

価値 -
デフォルト速度エリア

デフォルト値

説明

未チェック

パイプライン レジスタのクロック ポートにアクティブ High のクロック イネーブルを指定します。

デフォルト

IP コアに必要な最適化を指定します。
Default を選択して、 インテル Quartus Prime ソフトウェアが IP コアの最適化を決定できるようにします。

4.7. インテル Stratix 10、インテル Arria 10、および インテル Cyclone 10 GX デバイスのパラメーター

4.7.1. 一般タブ

表 12. 一般タブ

パラメータ

価値

デフォルト値

説明

乗数構成タイプ
データ ポート幅

'dataa' 入力と 'datab' 入力を乗算します
'dataa' 入力をそれ自体で乗算 (XNUMX 乗演算)

'dataa' 入力と 'datab' 入力を乗算します

乗算器の目的の構成を選択します。

データ幅

1〜256ビット

8ビット

dataa[] ポートの幅を指定します。

データ幅

1〜256ビット

8ビット

datab[] ポートの幅を指定します。

「結果」出力の幅はどのように決定する必要がありますか?

タイプ

幅を自動計算
幅を制限する

自動的に幅を計算します

result[] ポートの幅を決定する方法を選択します。

価値

1〜512ビット

16ビット

result[] ポートの幅を指定します。
この値は、[タイプ] パラメーターで [幅を制限する] を選択した場合にのみ有効です。

結果幅

1〜512ビット

result[] ポートの有効幅を表示します。

4.7.2. 一般 2 タブ

表 13. 一般 2 タブ

パラメータ

データ入力

「datab」入力バスには定数値がありますか?

いいえ はい

価値

デフォルト値

説明

いいえ

の定数値を指定するには、[はい] を選択します。

'datab' 入力バス (存在する場合)。

続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 20

フィードバックを送信

4. LPM_MULT (乗算器) IP コア 683490 | 2020.10.05

パラメータ

価値

価値

0 より大きい任意の値

乗算タイプ

どのタイプの

署名なし

掛け算したいですか? 署名済み

実装スタイル

どの乗算器の実装を使用する必要がありますか?

デフォルトの実装を使用する
専用乗算器回路を使用する
論理要素を使用する

デフォルト値

説明

0

datab[] ポートの定数値を指定します。

署名なし

dataa[] および datab[] 入力の両方の表現形式を指定します。

デフォルトの実装を使用する

result[] ポートの幅を決定する方法を選択します。

4.7.3. パイプライン

表 14. パイプライン タブ

パラメータ

価値

関数をパイプライン処理しますか?

パイプライン

いいえ はい

レイテンシークリア信号タイプ

0 より大きい任意の値。
なし ACLR SCLR

「clken」クロックを作成する

クロックを有効にする

どのタイプの最適化が必要ですか?

タイプ

デフォルト速度エリア

デフォルト値

説明

いいえ 1 なし

[はい] を選択して、乗算器の出力に対するパイプライン レジスタを有効にします。 パイプライン レジスタを有効にすると、出力に余分なレイテンシが追加されます。
必要な出力レイテンシをクロック サイクルで指定します。
パイプライン レジスタのリセットのタイプを指定します。 パイプライン レジスタを使用しない場合は、NONE を選択します。 パイプライン レジスタの非同期クリアを使用するには、ACLR を選択します。 これにより ACLR ポートが生成されます。 パイプライン レジスタに同期クリアを使用するには、SCLR を選択します。 これにより、SCLR ポートが生成されます。
パイプライン レジスタのクロック ポートにアクティブ High のクロック イネーブルを指定します。

デフォルト

IP コアに必要な最適化を指定します。
Default を選択して、 インテル Quartus Prime ソフトウェアが IP コアの最適化を決定できるようにします。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 21

683490 | 2020.10.05フィードバックを送信

5. LPM_ADD_SUB (加算器/減算器)

図4.

LPM_ADD_SUB IP コアを使用すると、加算器または減算器を実装してデータ セットを加算または減算し、入力値の合計または差を含む出力を生成できます。

次の図は、LPM_ADD_SUB IP コアのポートを示しています。

LPM_ADD_SUB ポート

LPM_ADD_SUB add_sub cin

データ[]

クロック clken datab[] aclr

result[] オーバーフロー cout

インスト

5.1. 特徴
LPM_ADD_SUB IP コアは、次の機能を提供します。 · 加算器、減算器、および動的に構成可能な加算器/減算器を生成します。
機能。 ・データ幅1bitに対応。 ・signed、unsignedなどのデータ表現形式に対応。 ・オプションのキャリーイン(ボローアウト)、非同期クリア、クロックイネーブルに対応
入力ポート。 ・オプションのキャリーアウト(ボローイン)、オーバーフロー出力ポートに対応。 · 入力データ バスのいずれか XNUMX つを定数に割り当てます。 · 設定可能な出力レイテンシでパイプライン処理をサポート。

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

5. LPM_ADD_SUB (加算器/減算器) 683490 | 2020.10.05
5.2. Verilog HDL プロトタイプ
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール lpm_add_sub (結果、cout、オーバーフロー、add_sub、cin、dataa、datab、クロック、clken、aclr); パラメータ lpm_type = “lpm_add_sub”; パラメータ lpm_width = 1; パラメータ lpm_direction = “未使用”; パラメータ lpm_representation = “SIGNED”; パラメータ lpm_pipeline = 0; パラメータ lpm_hint = “未使用”; 入力 [lpm_width-1:0] dataa、datab; 入力 add_sub、cin; 入力クロック; 入力 clken; 入力 ACLR; 出力 [lpm_width-1:0] 結果; 出力 cout、オーバーフロー。 エンドモジュール
5.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) LPM_PACK.vhd 内librariesvhdllpm ディレクトリ。
コンポーネント LPM_ADD_SUB ジェネリック (LPM_WIDTH : 自然;
LPM_DIRECTION : 文字列 := "未使用"; LPM_REPRESENTATION: 文字列 := "SIGNED"; LPM_PIPELINE : 自然 := 0; LPM_TYPE : 文字列 := L_ADD_SUB; LPM_HINT : 文字列 := "未使用"); port (DATAA : in std_logic_vector(LPM_WIDTH-1 downto 0); DATAB : in std_logic_vector(LPM_WIDTH-1 downto 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; CIN : in std_logic := 'Z'; ADD_SUB : in std_logic := '1'; RESULT : out std_logic_vector(LPM_WIDTH-1 downto 0); COUT : out std_logic; OVERFLOW : out std_logic); エンドコンポーネント;
5.4. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリ lpm; lpm.lpm_components.all を使用します。
5.5. ポート
次の表に、LPM_ADD_SUB IP コアの入力ポートと出力ポートを示します。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 23

5. LPM_ADD_SUB (加算器/減算器) 683490 | 2020.10.05

表 15. LPM_ADD_SUB IP コアの入力ポート

ポート名

必須

説明

シン

いいえ

下位ビットへのキャリーイン。 加算演算の場合、デフォルト値は 0 です。

デフォルト値は 1 です。

データ[]

はい

データ入力。 入力ポートのサイズは、LPM_WIDTH パラメーター値によって異なります。

データベース[]

はい

データ入力。 入力ポートのサイズは、LPM_WIDTH パラメーター値によって異なります。

追加_サブ

いいえ

加算器と減算器間の動的切り替えを可能にするオプションの入力ポート

機能。 LPM_DIRECTION パラメータを使用する場合、add_sub は使用できません。 もしも

省略した場合、デフォルト値は ADD です。 インテルは、

LPM_ADD_SUB 関数の動作を指定する LPM_DIRECTION パラメータ、

add_sub ポートに定数を割り当てるのではなく。

クロック

いいえ

パイプラインで使用するための入力。 クロック ポートは、パイプライン化されたクロック入力を提供します。

手術。 0 (デフォルト) 以外の LPM_PIPELINE 値の場合、クロック ポートは

有効になりました。

クロックン

いいえ

パイプライン使用のためのクロック イネーブル。 clken ポートが High にアサートされると、adder/

減算演算が行われます。 信号が Low の場合、動作は発生しません。 もしも

デフォルト値は 1 です。

aclr

いいえ

パイプラインで使用するための非同期クリア。 パイプラインは未定義 (X) に初期化されます

ロジックレベル。 aclr ポートをいつでも使用して、パイプラインをすべて 0 にリセットできます。

クロック信号に非同期で。

表 16. LPM_ADD_SUB IP コアの出力ポート

ポート名

必須

説明

結果[]

はい

データ出力。 出力ポートのサイズは LPM_WIDTH パラメータによって異なります

価値。

カウント

いいえ

最上位ビット (MSB) のキャリーアウト (ボローイン)。 cout ポートには物理

MSB のキャリーアウト (ボローイン) として解釈されます。 cout ポートが検出します。

UNSIGNED 操作でのオーバーフロー。 cout ポートは、

SIGNED および UNSIGNED 操作。

オーバーフロー

いいえ

オプションのオーバーフロー例外出力。 オーバーフロー ポートの物理的な解釈は次のとおりです。

MSB のキャリーアウトを使用した MSB へのキャリーインの XOR。 オーバーフローポート

結果が利用可能な精度を超えたときにアサートし、

LPM_REPRESENTATION パラメータ値は SIGNED です。

5.6。 パラメーター

次の表に、LPM_ADD_SUB IP コアのパラメーターを示します。

表 17. LPM_ADD_SUB IP コアのパラメーター

パラメータ名 LPM_WIDTH

整数型

必須はい

説明
dataa[]、datab[]、および result[] ポートの幅を指定します。

LPM_DIRECTION

いいえ

値は、ADD、SUB、および UNUSED です。 省略した場合、デフォルト値は DEFAULT で、add_sub ポートから値を取得するようパラメーターに指示します。 LPM_DIRECTION が使用されている場合、add_sub ポートは使用できません。 インテルでは、定数を add_sub ポートに割り当てるのではなく、LPM_DIRECTION パラメーターを使用して LPM_ADD_SUB 関数の操作を指定することをお勧めします。
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 24

フィードバックを送信

5. LPM_ADD_SUB (加算器/減算器) 683490 | 2020.10.05

パラメータ名 LPM_REPRESENTATION LPM_PIPELINE LPM_HINT LPM_TYPE ONE_INPUT_IS_CONSTANT MAXIMIZE_SPEED
INTENDED_DEVICE_FAMILY

タイプ 文字列 整数 文字列 文字列 文字列 整数

必須 いいえ いいえ いいえ いいえ いいえ いいえ
いいえ

説明
実行される加算のタイプを指定します。 値は SIGNED および UNSIGNED です。 省略した場合、デフォルト値は SIGNED です。 このパラメーターが SIGNED に設定されている場合、加算器/減算器はデータ入力を符号付き XNUMX の補数として解釈します。
result[] 出力に関連付けられたレイテンシ クロック サイクル数を指定します。 ゼロ (0) の値は、レイテンシが存在せず、純粋な組み合わせ関数がインスタンス化されることを示します。 省略した場合、デフォルト値は 0 (非パイプライン) です。
VHDL デザインで Intel 固有のパラメーターを指定できます。 files (.vhd)。 デフォルト値は UNUSED です。
VHDL デザインのパラメータ化されたモジュール (LPM) エンティティ名のライブラリを識別します files.
Intel 固有のパラメーター。 VHDL デザインで ONE_INPUT_IS_CONSTANT パラメーターを指定するには、LPM_HINT パラメーターを使用する必要があります。 file秒。 値は、YES、NO、および UNUSED です。 XNUMX つの入力が一定である場合、より優れた最適化が提供されます。 省略した場合、デフォルト値は NO です。
Intel 固有のパラメーター。 VHDL デザインで MAXIMIZE_SPEED パラメーターを指定するには、LPM_HINT パラメーターを使用する必要があります。 file秒。 0 ~ 10 の値を指定できます。使用すると、インテル Quartus Prime ソフトウェアは、LPM_ADD_SUB 関数の特定のインスタンスをルーティング可能性ではなく速度のために最適化しようとし、Optimization Technique ロジックオプションの設定をオーバーライドします。 MAXIMIZE_SPEED が使用されていない場合は、代わりに Optimization Technique オプションの値が使用されます。 MAXIMIZE_SPEED の設定が 6 以上の場合、Compiler は LPM_ADD_SUB IP コアを高速化するためにキャリー チェーンを使用して最適化します。 設定が 5 以下の場合、コンパイラはキャリー チェーンなしでデザインをインプリメントします。 このパラメーターは、add_sub ポートが使用されていない場合にのみ、Cyclone、Stratix、および Stratix GX デバイスに対して指定する必要があります。
このパラメーターは、モデリングおよびビヘイビアー シミュレーションの目的で使用されます。 パラメータ エディタは、このパラメータの値を計算します。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 25

683490 | 2020.10.05フィードバックを送信

6. LPM_COMPARE (コンパレータ)

図5.

LPM_COMPARE IP コアは、XNUMX つのデータ セットの値を比較して、それらの関係を判断します。 最も単純な形式では、排他的 OR ゲートを使用して、XNUMX ビットのデータが等しいかどうかを判断できます。

次の図は、LPM_COMPARE IP コアのポートを示しています。

LPM_COMPARE ポート

LPM_COMPARE

クロックン

アルバ

エイブ

データ[]

エイジー

データベース[]

アゲブ

クロック

また

aclr

アレブ

インスト

6.1. 特徴
LPM_COMPARE IP コアは、次の機能を提供します。 · 1 つのデータ セットを比較するコンパレータ関数を生成する · 256 ビットのデータ幅をサポートする · 符号付きおよび符号なしなどのデータ表現形式をサポートする · 次の出力タイプを生成する:
— alb (入力 A が入力 B より小さい) — aeb (入力 A が入力 B と等しい) — agb (入力 A が入力 B より大きい) — ageb (入力 A が入力 B より大きいか等しい) — aneb (入力 A が入力 B と等しくない) — aleb (入力 A が入力 B より小さいか等しい) · オプションの非同期クリアおよびクロック イネーブル入力ポートをサポート · datab[] 入力を定数に割り当て · 構成可能な出力レイテンシでパイプライン処理をサポート

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

6. LPM_COMPARE (コンパレータ) 683490 | 2020.10.05
6.2. Verilog HDL プロトタイプ
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール lpm_compare ( alb, aeb, agb, aleb, aneb, ageb, dataa, datab, clock, clken, aclr ); パラメータ lpm_type = “lpm_compare”; パラメータ lpm_width = 1; パラメータ lpm_representation = “UNSIGNED”; パラメータ lpm_pipeline = 0; パラメータ lpm_hint = “未使用”; 入力 [lpm_width-1:0] dataa、datab; 入力クロック; 入力 clken; 入力 ACLR; alb、aeb、agb、aleb、aneb、ageb を出力します。 エンドモジュール
6.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) LPM_PACK.vhd 内librariesvhdllpm ディレクトリ。
コンポーネント LPM_COMPARE ジェネリック (LPM_WIDTH : 自然;
LPM_REPRESENTATION : 文字列 := "UNSIGNED"; LPM_PIPELINE : 自然 := 0; LPM_TYPE: 文字列:= L_COMPARE; LPM_HINT : 文字列 := "未使用"); port (DATAA : in std_logic_vector(LPM_WIDTH-1 downto 0); DATAB : in std_logic_vector(LPM_WIDTH-1 downto 0); ACLR : in std_logic := '0'; CLOCK : in std_logic := '0'; CLKEN : in std_logic := '1'; AGB : out std_logic; AGEB : out std_logic; AEB : out std_logic; ANEB : out std_logic; ALB : out std_logic; ALEB : out std_logic); エンドコンポーネント;
6.4. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリ lpm; lpm.lpm_components.all を使用します。
6.5. ポート
次の表に、LMP_COMPARE IP コアの入力ポートと出力ポートを示します。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 27

6. LPM_COMPARE (コンパレータ) 683490 | 2020.10.05

表 18. LPM_COMPARE IP コアの入力ポート

ポート名

必須

説明

データ[]

はい

データ入力。 入力ポートのサイズは、LPM_WIDTH パラメーター値によって異なります。

データベース[]

はい

データ入力。 入力ポートのサイズは、LPM_WIDTH パラメーター値によって異なります。

クロック

いいえ

パイプラインで使用するためのクロック入力。 クロック ポートは、パイプライン化されたクロック入力を提供します。

手術。 0 (デフォルト) 以外の LPM_PIPELINE 値の場合、クロック ポートは

有効になりました。

クロックン

いいえ

パイプライン使用のためのクロック イネーブル。 clken ポートが High にアサートされると、

比較操作が行われます。 信号が Low の場合、動作は発生しません。 もしも

デフォルト値は 1 です。

aclr

いいえ

パイプラインで使用するための非同期クリア。 パイプラインが未定義 (X) ロジックに初期化される

レベル。 aclr ポートをいつでも使用して、パイプラインをすべて 0 にリセットできます。

クロック信号に非同期で。

表 19. LPM_COMPARE IP コアの出力ポート

ポート名

必須

説明

アルバ

いいえ

コンパレータの出力ポート。 入力 A が入力 B より小さい場合にアサートされます。

エイブ

いいえ

コンパレータの出力ポート。 入力 A が入力 B と等しい場合にアサートされます。

エイジー

いいえ

コンパレータの出力ポート。 入力 A が入力 B より大きい場合にアサートされます。

アゲブ

いいえ

コンパレータの出力ポート。 入力 A が入力以上の場合にアサートされます

B.

また

いいえ

コンパレータの出力ポート。 入力 A が入力 B と等しくない場合にアサートされます。

アレブ

いいえ

コンパレータの出力ポート。 入力 A が入力 B 以下の場合にアサートされます。

6.6。 パラメーター

次の表に、LPM_COMPARE IP コアのパラメーターを示します。

表 20. LPM_COMPARE IP コアのパラメーター

パラメータ名

タイプ

必須

LPM_WIDTH

整数はい

LPM_REPRESENTATION

いいえ

LPM_PIPELINE

整数 いいえ

LPM_HINT

いいえ

説明
dataa[] および datab[] ポートの幅を指定します。
実行される比較のタイプを指定します。 値は SIGNED および UNSIGNED です。 省略した場合、デフォルト値は UNSIGNED です。 このパラメータ値が SIGNED に設定されている場合、コンパレータはデータ入力を符号付き XNUMX の補数として解釈します。
alb、aeb、agb、ageb、aleb、または aneb 出力に関連するレイテンシのクロック サイクル数を指定します。 ゼロ (0) の値は、レイテンシが存在せず、純粋な組み合わせ関数がインスタンス化されることを示します。 省略した場合、デフォルト値は 0 (非パイプライン) です。
VHDL デザインで Intel 固有のパラメーターを指定できます。 files (.vhd)。 デフォルト値は UNUSED です。
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 28

フィードバックを送信

6. LPM_COMPARE (コンパレータ) 683490 | 2020.10.05
パラメータ名 LPM_TYPE INTENDED_DEVICE_FAMILY
ONE_INPUT_IS_CONSTANT

タイプ文字列文字列

必須 いいえ いいえ
いいえ

説明
VHDL デザインのパラメータ化されたモジュール (LPM) エンティティ名のライブラリを識別します files.
このパラメーターは、モデリングおよびビヘイビアー シミュレーションの目的で使用されます。 パラメータ エディタは、このパラメータの値を計算します。
Intel 固有のパラメーター。 VHDL デザインで ONE_INPUT_IS_CONSTANT パラメーターを指定するには、LPM_HINT パラメーターを使用する必要があります。 file秒。 値は、YES、NO、または UNUSED です。 入力が定数の場合、より優れた最適化を提供します。 省略した場合、デフォルト値は NO です。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 29

683490 | 2020.10.05フィードバックを送信

7. ALTECC (Error Correction Code: Encoder/Decoder) IPコア

図6.

インテルは、ECC 機能を実装するために ALTECC IP コアを提供しています。 ECC は、データ送信中に受信側で発生する破損したデータを検出します。 このエラー訂正方法は、エラーがバーストではなくランダムに発生する状況に最適です。

ECC は、データのエンコードとデコードのプロセスを通じてエラーを検出します。 例えばampつまり、ECC が送信アプリケーションに適用されると、ソースから読み取られたデータは、受信側に送信される前にエンコードされます。 エンコーダからの出力 (コード ワード) は、パリティ ビット数が追加された生データで構成されます。 追加されるパリティ ビットの正確な数は、入力データのビット数によって異なります。 生成されたコードワードは宛先に送信されます。

受信機はコードワードを受信し、デコードします。 デコーダによって取得された情報によって、エラーが検出されたかどうかが決まります。 デコーダーはシングル ビット エラーとダブル ビット エラーを検出しますが、破損したデータのシングル ビット エラーしか修正できません。 このタイプの ECC は、シングル エラー訂正ダブル エラー検出 (SECDED) です。

ALTECC IP コアのエンコーダーおよびデコーダー機能を設定できます。 エンコーダへのデータ入力は、データ入力と生成されたパリティ ビットの組み合わせであるコード ワードを生成するためにエンコードされます。 生成されたコード ワードは、目的のブロックに到達する直前に、デコードのためにデコーダ モジュールに送信されます。 デコーダーは、シンドローム ベクトルを生成して、受信したコード ワードにエラーがあるかどうかを判断します。 デコーダは、シングル ビット エラーがデータ ビットからのものである場合にのみ、データを訂正します。 シングル ビット エラーがパリティ ビットからのものである場合、信号はフラグされません。 デコーダーには、受信したデータのステータスと、デコーダーが実行したアクション (存在する場合) を示すフラグ信号もあります。

次の図は、ALTECC IP コアのポートを示しています。

ALTECC エンコーダ ポート

ALTECC_ENCODER

データ[]

q[]

クロック

クロックン

aclr

インスト

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

7. ALTECC (エラー訂正コード: エンコーダー/デコーダー) IP コア 683490 | 2020.10.05

図 7. ALTECC デコーダーのポート

ALTECC_DECODER

data[] クロック clocken

q[] エラー検出 エラー修正
エラー_致命的

aclr

インスト

7.1. ALTECC エンコーダーの機能

ALTECC エンコーダー IP コアは、次の機能を提供します。 · ハミング コーディング方式を使用してデータ エンコードを実行 · 2 ビットのデータ幅をサポート · 符号付きおよび符号なしデータ表現形式をサポート · 64 または XNUMX クロック サイクルの出力レイテンシでパイプライン処理をサポート · オプションの非同期クリアおよびクロック イネーブル ポート

ALTECC エンコーダー IP コアは、ハミング コーディング方式を使用してデータを取り込み、エンコードします。 ハミング コーディング スキームは、パリティ ビットを導出し、それらを元のデータに追加して、出力コード ワードを生成します。 追加されるパリティ ビットの数は、データの幅によって異なります。

次の表に、さまざまな範囲のデータ幅に追加されるパリティ ビットの数を示します。 Total Bits 列は、入力データ ビットと付加されたパリティ ビットの総数を表します。

表21.

データ幅によるパリティビット数と符号語数

データ幅

パリティ ビット数

総ビット数 (コードワード)

2-4

3+1

6-8

5-11

4+1

10-16

12-26

5+1

18-32

27-57

6+1

34-64

58-64

7+1

66-72

パリティ ビットの導出では、偶数パリティ チェックが使用されます。 追加の 1 ビット (表では +1 として示されています) は、コード ワードの MSB としてパリ​​ティ ビットに追加されます。 これにより、コード ワードの 1 の数が偶数になることが保証されます。 例えばampつまり、データ幅が 4 ビットの場合、データに 4 つのパリティ ビットが付加され、合計 8 ビットのコード ワードになります。 7 ビット コード ワードの LSB から 8 ビットに奇数個の 1 がある場合、コード ワードの 8 番目のビット (MSB) は 1 であり、コード ワード内の 1 の総数は偶数になります。
次の図は、生成されたコード ワードと、8 ビット データ入力のパリティ ビットとデータ ビットの配置を示しています。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 31

7. ALTECC (エラー訂正コード: エンコーダー/デコーダー) IP コア 683490 | 2020.10.05

図8.

生成された 8 ビット コード ワードでのパリティ ビットとデータ ビットの配置

MSB

LSb の

4 パリティ ビット

4 データビット

8

1

ALTECC エンコーダー IP コアは、一度に 2 ~ 64 ビットの入力幅のみを受け入れます。 Intel デバイスに最適な 12 ビット、29 ビット、および 64 ビットの入力幅は、それぞれ 18 ビット、36 ビット、および 72 ビットの出力を生成します。 パラメータ エディタでビット選択の制限を制御できます。

7.2. Verilog HDL プロトタイプ (ALTECC_ENCODER)
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール altecc_encoder #( パラメーター意図した_デバイス_ファミリ = 「未使用」、パラメーター lpm_pipeline = 0、パラメーター width_codeword = 8、パラメーター width_dataword = 8、パラメーター lpm_type = 「altecc_encoder」、パラメーター lpm_hint = 「未使用」) ( 入力ワイヤー aclr、入力ワイヤー クロック、入力ワイヤー クロック、入力ワイヤー [width_dataword-1:0] データ、出力ワイヤー [width_codeword-1:0] q); エンドモジュール

7.3. Verilog HDL プロトタイプ (ALTECC_DECODER)
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) lpm.v のedasynthesis ディレクトリ。
モジュール altecc_decoder #( パラメーター意図された_デバイス_ファミリ = 「未使用」、パラメーター lpm_pipeline = 0、パラメーター width_codeword = 8、パラメーター width_dataword = 8、パラメーター lpm_type = 「altecc_decoder」、パラメーター lpm_hint = 「未使用」) ( 入力ワイヤー aclr、入力ワイヤー クロック、入力wire clocken、入力ワイヤ [width_codeword-1:0] データ、出力ワイヤ err_corrected、出力ワイヤ err_detected、出力ワイヤ err_fatal、出力ワイヤ [width_dataword-1:0] q); エンドモジュール

インテル FPGA 整数演算 IP コアのユーザーガイド 32

フィードバックを送信

7. ALTECC (エラー訂正コード: エンコーダー/デコーダー) IP コア 683490 | 2020.10.05
7.4. VHDL コンポーネント宣言 (ALTECC_ENCODER)
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) altera_mf_components.vhd librariesvhdlaltera_mf ディレクトリ。
コンポーネント altecc_encoder ジェネリック (意図された_デバイス_ファミリ:文字列:=「未使用」; lpm_pipeline:自然:= 0; 幅_コードワード:自然:= 8; 幅_データワード:自然:= 8; lpm_ヒント:文字列:= 「未使用」; lpm_type:文字列:= 「altecc_encoder 」); port( aclr:in std_logic := '0'; clock:in std_logic := '0'; clocken:in std_logic := '1'; data:in std_logic_vector(width_dataword-1 downto 0); q:out std_logic_vector(width_codeword -1 から 0)); エンドコンポーネント;
7.5. VHDL コンポーネント宣言 (ALTECC_DECODER)
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) altera_mf_components.vhd librariesvhdlaltera_mf ディレクトリ。
コンポーネント altecc_decoder ジェネリック (意図された_デバイス_ファミリ:文字列 := 「未使用」; lpm_pipeline:自然 := 0; 幅_コードワード:自然 := 8; 幅_データワード:自然 := 8; lpm_ヒント:文字列 := 「未使用」; lpm_type:文字列 := 「altecc_decoder 」); port( aclr: in std_logic := '0'; clock: in std_logic := '0'; clocken: in std_logic := '1'; data: in std_logic_vector(width_codeword-1 downto 0); err_corrected : out std_logic; err_detected : out std_logic; q:out std_logic_vector(width_dataword-1 downto 0); syn_e : out std_logic); エンドコンポーネント;
7.6. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリaltera_mf; altera_mf.altera_mf_components.all を使用します。
7.7. エンコーダ ポート
次の表に、ALTECC エンコーダー IP コアの入力ポートと出力ポートを示します。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 33

7. ALTECC (エラー訂正コード: エンコーダー/デコーダー) IP コア 683490 | 2020.10.05

表 22. ALTECC エンコーダの入力ポート

ポート名

必須

説明

データ[]

はい

データ入力ポート。 入力ポートのサイズは WIDTH_DATAWORD によって異なります

パラメータ値。 data[] ポートには、エンコードされる生データが含まれます。

クロック

はい

エンコード動作を同期させるためのクロック信号を提供するクロック入力ポート。

LPM_PIPELINE 値が 0 より大きい場合は、クロック ポートが必要です。

クロックン

いいえ

クロック イネーブル。 省略した場合、デフォルト値は 1 です。

aclr

いいえ

非同期クリア入力。 アクティブ High の aclr 信号をいつでも使用して、

レジスタを非同期にクリアします。

表 23. ALTECC エンコーダ出力ポート

ポート名 q[]

必須はい

説明
エンコードされたデータ出力ポート。 出力ポートのサイズは、WIDTH_CODEWORD パラメータ値によって異なります。

7.8. デコーダー ポート

次の表に、ALTECC デコーダー IP コアの入力ポートと出力ポートを示します。

表 24. ALTECC デコーダーの入力ポート

ポート名

必須

説明

データ[]

はい

データ入力ポート。 入力ポートのサイズは、WIDTH_CODEWORD パラメータ値によって異なります。

クロック

はい

エンコード動作を同期させるためのクロック信号を提供するクロック入力ポート。 LPM_PIPELINE 値が 0 より大きい場合は、クロック ポートが必要です。

クロックン

いいえ

クロック イネーブル。 省略した場合、デフォルト値は 1 です。

aclr

いいえ

非同期クリア入力。 アクティブ High の aclr 信号をいつでも使用して、レジスタを非同期的にクリアできます。

表 25. ALTECC デコーダーの出力ポート

ポート名 q[]

必須はい

説明
デコードされたデータ出力ポート。 出力ポートのサイズは、WIDTH_DATAWORD パラメータ値によって異なります。

err_detected はい

受信したデータのステータスを反映し、検出されたエラーを特定するフラグ信号。

err_correcte はい d

受信したデータのステータスを反映するフラグ信号。 シングル ビット エラーが検出され、修正されたことを示します。 データは修正済みですのでそのままご利用いただけます。

エラー_致命的

はい

受信したデータのステータスを反映するフラグ信号。 ダブル ビット エラーが検出されたが、修正されていないことを示します。 この信号がアサートされている場合は、データを使用しないでください。

シンエ

いいえ

パリティでシングル ビット エラーが検出されるたびに High になる出力信号

ビット。

7.9. エンコーダ パラメータ
次の表に、ALTECC エンコーダー IP コアのパラメーターを示します。

インテル FPGA 整数演算 IP コアのユーザーガイド 34

フィードバックを送信

7. ALTECC (エラー訂正コード: エンコーダー/デコーダー) IP コア 683490 | 2020.10.05

表 26. ALTECC エンコーダーのパラメーター

パラメータ名

タイプ

必須

説明

WIDTH_DATAWORD

整数はい

生データの幅を指定します。 値は 2 ~ 64 です。省略した場合、デフォルト値は 8 です。

WIDTH_CODEWORD

整数はい

対応するコード ワードの幅を指定します。 有効な値は、6、72、9、および 17 を除く 33 ~ 65 です。省略した場合、デフォルト値は 13 です。

LPM_PIPELINE

整数 いいえ

回路のパイプラインを指定します。 値は 0 から 2 です。値が 0 の場合、ポートは登録されていません。 値が 1 の場合、出力ポートは登録されています。 値が 2 の場合、入力ポートと出力ポートが登録されます。 省略した場合、デフォルト値は 0 です。

7.10. デコーダーのパラメーター

次の表に、ALTECC デコーダー IP コアのパラメーターを示します。

表 27. ALTECC デコーダーのパラメーター

パラメータ名 WIDTH_DATAWORD

整数型

必須

説明

はい

生データの幅を指定します。 値は 2 ~ 64 です。

デフォルト値は8です。

WIDTH_CODEWORD

整数

はい

対応するコード ワードの幅を指定します。 値は 6

72、9、17、33 を除く 65 まで。省略した場合はデフォルト値

13 です。

LPM_PIPELINE

整数

いいえ

回路のレジスタを指定します。 値は 0 ~ 2 です。

値が 0 の場合、レジスタは実装されていません。 値が 1 の場合、

出力が登録されます。 値が 2 の場合、入力と

出力が登録されます。 値が 2 より大きい場合、追加

レジスタは、追加の出力に実装されます。

レイテンシ。 省略した場合、デフォルト値は 0 です。

「syn_e」ポートを作成します

整数

いいえ

syn_e ポートを作成するには、このパラメーターをオンにします。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 35

683490 | 2020.10.05フィードバックを送信

8. Intel FPGA Multiply Adder IP コア

図9.

Intel FPGA Multiply Adder (Intel Stratix 10、Intel Arria 10、および Intel Cyclone 10 GX デバイス) または ALTERA_MULT_ADD (Arria V、Stratix V、および Cyclone V デバイス) IP コアを使用すると、乗数加算器を実装できます。

次の図は、Intel FPGA Multiply Adder または ALTERA_MULT_ADD IP コアのポートを示しています。

Intel FPGA Multiply Adder または ALTERA_MULT_ADD ポート

Intel FPGA Multiply Adder または ALTERA_MULT_ADD

dataa[] Signa datab[]signb datac[] coefsel0[] coefsel1[] coefsel2[] coefsel3[] addnsub1 addnsub3 aclr/sclr[] scanina[] Clock0 Clock1 Clock2 ena0 ena1 ena2 sload_accum
accum_sloadchainin[]

scanouta[] 結果[]

aclr0 aclr1

インスト
乗加算器は、入力のペアを受け取り、値を乗算してから、他のすべてのペアの積に加算または減算します。
すべての入力データ幅が 9 ビット幅以下の場合、関数は 9 x 9 構成をサポートするデバイスの DSP ブロックで 9 x 9 ビット入力乗算器構成を使用します。 そうでない場合、DSP ブロックは 18 × 18 ビットの入力乗算器を使用して、10 ~ 18 ビット幅のデータを処理します。 複数の Intel FPGA Multiply Adder または ALTERA_MULT_ADD IP コアがデザイン内にある場合、関数は次のように分散されます。

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05
これらのブロックへのルーティングがより柔軟になるように、できるだけ多くの異なる DSP ブロックを使用します。 DSP ブロックごとの乗算器が少ないほど、デバイスの残りの部分へのパスが最小限に抑えられ、ブロックへのルーティングの選択肢が増えます。
次の信号用のレジスタと追加のパイプライン レジスタも DSP ブロック内に配置されます。 · データ入力 · 符号付きまたは符号なしの選択 · 加算または減算の選択 · 乗算器の積
出力結果の場合、最初のレジスタは DSP ブロックに配置されます。 ただし、余分なレイテンシ レジスタは、ブロック外のロジック エレメントに配置されます。 乗算器へのデータ入力、制御信号入力、加算器の出力など、DSP ブロックの周辺機器は、通常のルーティングを使用してデバイスの残りの部分と通信します。 関数内のすべての接続は、DSP ブロック内の専用ルーティングを使用します。 この専用ルーティングには、乗算器の登録済み入力データをある乗算器から隣接する乗算器にシフトするオプションを選択した場合、シフト レジスタ チェーンが含まれます。
Stratix V および Arria V デバイス シリーズのいずれかの DSP ブロックの詳細については、文献および技術文書ページの各ハンドブックの DSP ブロックの章を参照してください。
関連情報 AN 306: FPGA デバイスに乗算器を実装する
インテル FPGA デバイスで DSP およびメモリー・ブロックを使用した乗算器の実装に関する詳細情報を提供します。
8.1. 特徴
Intel FPGA Multiply Adder または ALTERA_MULT_ADD IP コアは、次の機能を提供します。 · XNUMX つの複素数の乗算演算を実行する乗算器を生成します。
数値 注: ネイティブでサポートされているサイズよりも大きな乗数を構築する場合、/
DSP ブロックのカスケード接続によるパフォーマンスへの影響があります。 · 1 256 ビットのデータ幅をサポート · 符号付きおよび符号なしのデータ表現形式をサポート · 構成可能な入力レイテンシによるパイプライン処理をサポート · 符号付きデータと符号なしデータのサポートを動的に切り替えるオプションを提供 · 加算演算と減算演算を動的に切り替えるオプションを提供 ·オプションの非同期および同期クリアおよびクロック イネーブル入力ポート · シストリック遅延レジスタ モードをサポート · 乗算器ごとに 8 つのプリロード係数を持つプリアダーをサポート · アキュムレータ フィードバックを補完するプリロード定数をサポート

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 37

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

8.1.1. 前置加算器
前置加算器を使用すると、乗算器に供給する前に加算または減算が行われます。
プリアダー モードには次の XNUMX つがあります。 · シンプル モード · 係数モード · 入力モード · XNUMX 乗モード · コンスタント モード

注記:

前置加算器を使用する場合 (前置加算器係数/入力/平方モード)、乗算器へのすべてのデータ入力は同じクロック設定にする必要があります。

8.1.1.1. 前置加算シンプルモード

このモードでは、両方のオペランドが入力ポートから導出され、前置加算器は使用またはバイパスされません。 これがデフォルトのモードです。

図 10. 前置加算器シンプル モード
a0 b0

マルチ0

結果

8.1.1.2. 前置加算器係数モード
このモードでは、8 つの乗算器オペランドは前置加算器から派生し、もう 0 つのオペランドは内部係数ストレージから派生します。 係数ストレージでは、最大 3 つのプリセット定数を使用できます。 係数選択信号は coefsel[XNUMX..XNUMX] です。
このモードは次式で表されます。

乗算器のプリアダー係数モードを次に示します。

図 11. 前置加算器係数モード

プレッダー

a0

マルチ0

+/-

結果

b0

coefsel0 係数

インテル FPGA 整数演算 IP コアのユーザーガイド 38

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05
8.1.1.3. 前置加算器入力モード このモードでは、一方の乗数オペランドは前置加算器から派生し、もう一方のオペランドは datac[] 入力ポートから派生します。 このモードは次式で表されます。

乗算器のプリアダー入力モードを次に示します。

図 12. 前置加算器入力モード
a0 b0

マルチ0

+/-

結果

c0

8.1.1.4. Pre-adder Square モード このモードは、次の式で表されます。

以下は、XNUMX つの乗算器のプリアダー スクエア モードを示しています。

図 13. 前置加算器のスクエア モード
a0 b0

マルチ0

+/-

結果

8.1.1.5. 前置加算器定数モード
このモードでは、8 つの乗算器オペランドは入力ポートから派生し、もう 0 つのオペランドは内部係数ストレージから派生します。 係数ストレージでは、最大 3 つのプリセット定数を使用できます。 係数選択信号は coefsel[XNUMX..XNUMX] です。
このモードは次式で表されます。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 39

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

次の図は、乗算器の前置加算器定数モードを示しています。

図 14. 前置加算器固定モード
a0

マルチ0

結果

コフセル0
係数
8.1.2. シストリック遅延レジスタ
シストリック アーキテクチャでは、入力データは、データ バッファーとして機能するレジスタのカスケードに供給されます。 各レジスタは入力 s を提供しますample を乗算器に入力して、それぞれの係数を乗算します。 連鎖加算器は、乗算器からの徐々に組み合わされた結果と、以前に登録された chainin[] 入力ポートからの結果を格納して、最終結果を形成します。 各乗加算要素は、加算時に結果が適切に同期するように、XNUMX サイクル遅延する必要があります。 連続する各遅延は、それぞれの乗加算要素の係数メモリとデータ バッファの両方をアドレス指定するために使用されます。 例えばample、XNUMX 番目の乗算加算要素の XNUMX つの遅延、XNUMX 番目の乗算加算要素の XNUMX つの遅延など。
図 15. シストリック レジスタ
収縮レジスター

x(t) c(0)

S-1

S-1

c(1)

S-1

S-1

c(2)

S-1

S-1

c(N-1)

S-1

S-1

S-1

S -1 y(t)

x(t) は、入力 s の連続ストリームからの結果を表しますamples と y(t)
一連の入力 s の合計を表すampレ、そして時間的には、彼らの
それぞれの係数。 入力結果と出力結果はどちらも左から右に流れます。 c(0)~c(N-1)は係数を表す。 シストリック遅延レジスタは S-1 で示され、1 は XNUMX つのクロック遅延を表します。 収縮期遅延レジスターが追加されます
からの結果を保証する方法でパイプライン化するための入力と出力
乗数オペランドと累積合計は同期を保ちます。 この処理要素
フィルタリング関数を計算する回路を形成するために複製されます。 この機能は
次の式で表されます。

インテル FPGA 整数演算 IP コアのユーザーガイド 40

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

N はアキュムレータに入力されたデータのサイクル数を表し、y(t) は時刻 t での出力を表し、A(t) は時刻 t での入力を表し、B(i) は係数です。 式の t と i は特定の瞬間に対応するため、出力 s を計算するにはample y(t) 時刻 t で、入力 s のグループampN 個の異なる時点でのファイル、または A(n)、A(n-1)、A(n-2)、… A(n-N+1) が必要です。 N 入力のグループamples は N 個の係数で乗算され、合計されて最終結果 y が形成されます。
シストリック レジスタ アーキテクチャは、sum-of-2 および sum-of-4 モードでのみ使用できます。 どちらのシストリック レジスタ アーキテクチャ モードでも、最初の chainin 信号を 0 に接続する必要があります。
次の図は、2 つの乗算器のシストリック遅延レジスタの実装を示しています。
図 16. 2 つの乗算器のシストリック遅延レジスタの実装
チェーンイン

a0

マルチ0

+/-

b0

a1

マルチ1

+/-

b1

結果
XNUMX つの乗数の合計は、次の式で表されます。
次の図は、4 つの乗算器のシストリック遅延レジスタの実装を示しています。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 41

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

図 17. 4 つの乗算器のシストリック遅延レジスタの実装
チェーンイン

a0

マルチ0

+/-

b0

a1

マルチ1

+/-

b1

a2

マルチ2

+/-

b2

a3

マルチ3

+/-

b3

結果
18 つの乗数の合計は、次の式で表されます。 図 4. XNUMX つの乗算器の合計
以下に、アドバンのリストを示します。tagsystolic レジスタ実装の es: · DSP リソースの使用量を削減 · チェーン加算器構造を使用して DSP ブロックで効率的なマッピングを有効にします

インテル FPGA 整数演算 IP コアのユーザーガイド 42

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

8.1.3. 予圧定数
プリロード定数は、アキュムレータ オペランドを制御し、アキュムレータ フィードバックを補完します。 有効な LOADCONST_VALUE の範囲は 0 です。定数値は 64N に等しく、N = LOADCONST_VALUE です。 LOADCONST_VALUE が 2 に設定されている場合、定数値は 64 に等しくなります。この関数は、バイアス丸めとして使用できます。
次の図は、プリロード定数の実装を示しています。
図 19. プリロード定数

アキュムレータのフィードバック

絶え間ない

a0

マルチ0

+/-

b0

a1

マルチ1

+/b1

結果

accum_sload sload_accum

その他の乗算器の実装については、次の IP コアを参照してください。 · ALTMULT_ACCUM · ALTMEMMULT · LPM_MULT
8.1.4. ダブルアキュムレーター
ダブル アキュムレータ機能により、アキュムレータ フィードバック パスにレジスタが追加されます。 ダブル アキュムレータ レジスタは、クロック、クロック イネーブル、および aclr を含む出力レジスタに続きます。 追加のアキュムレータ レジスタは、XNUMX サイクルの遅延で結果を返します。 この機能により、同じリソース数を持つ XNUMX つのアキュムレータ チャネルを持つことができます。
次の図は、二重アキュムレータの実装を示しています。

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 43

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

図 20. ダブル アキュムレータ

ダブルアキュムレータレジスタ

アキュムレータ フィードバック

a0

マルチ0

+/-

b0

a1

マルチ1

+/b1

出力結果 出力レジスタ

8.2. Verilog HDL プロトタイプ
Intel FPGA Multiply Adder または ALTERA_MULT_ADD Verilog HDL プロトタイプを見つけることができます file (altera_mult_add_rtl.v) librariesmegafunctions ディレクトリ。
8.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、altera_lnsim_components.vhd にあります。 librariesvhdl altera_lnsim ディレクトリ。
8.4. VHDL LIBRARY_USE 宣言
VHDL コンポーネント宣言を使用する場合、VHDL LIBRARY-USE 宣言は必要ありません。
ライブラリaltera_mf; altera_mf.altera_mf_components.all を使用します。

8.5。 信号

次の表は、Multiply Adder Intel FPGA IP または ALTERA_MULT_ADD IP コアの入力信号と出力信号を示しています。

表 28. 乗算加算器 Intel FPGA IP または ALTERA_MULT_ADD 入力信号

信号

必須

説明

データa_0[]/データa_1[]/

はい

データa_2[]/データa_3[]

乗算器へのデータ入力。 入力ポート [NUMBER_OF_MULTIPLIERS * WIDTH_A – 1 … 0] 幅
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 44

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

信号 datab_0[]/datab_1[]/ datab_2[]/datab_3[] datac_0[] /datac_1[]/ datac_2[]/datac_3[] Clock[1:0] aclr[1:0] sclr[1:0] ena[1:0] 信号
サイン
スキャンナ[] accum_sload

必須 はい いいえ
いやいやいやいやいや
いいえ
いいえ いいえ

説明
この IP のシミュレーション モデルは、これらの信号への未定の入力値 (X) をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝搬されます。
乗算器へのデータ入力。 入力信号 [NUMBER_OF_MULTIPLIERS * WIDTH_B – 1 … 0] 幅 この IP のシミュレーション モデルは、これらの信号に対する未定の入力値 (X) をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝播されます。
乗算器へのデータ入力。 入力信号 [NUMBER_OF_MULTIPLIERS * WIDTH_C – 1, … 0] wide これらの信号を有効にするには、Select preadder mode パラメータで INPUT を選択します。 この IP のシミュレーション モデルは、これらの信号への未定の入力値 (X) をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝播されます。
対応するレジスタへのクロック入力ポート。 この信号は、IP コアの任意のレジスターで使用できます。 この IP のシミュレーション モデルは、これらの信号への未定の入力値 (X) をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝播されます。
対応するレジスタへの非同期クリア入力。 この IP のシミュレーション モデルは、これらの信号への未定の入力値 (X) をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝播されます。
対応するレジスタへの同期クリア入力。 この IP のシミュレーション モデルは、これらの信号に対する未定の入力値 X をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝播されます。
対応するレジスタへの信号入力を有効にします。 この IP のシミュレーション モデルは、これらの信号への未定の入力値 (X) をサポートします。 これらの信号に X 値を指定すると、X 値が出力信号に伝播されます。
乗算器入力 A の数値表現を指定します。signa 信号が高い場合、乗算器は乗算器入力 A 信号を符号付き数値として扱います。 信号信号がローの場合、乗算器は乗算器入力 A 信号を符号なし数値として扱います。 この信号を有効にするには、乗数 A 入力パラメーターの表現形式として [VARIABLE] を選択します。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
乗算器入力 B 信号の数値表現を指定します。 signb 信号が High の場合、乗算器は乗算器入力 B 信号を符号付き XNUMX の補数として扱います。 signb 信号が Low の場合、乗算器は乗算器入力 B 信号を符号なし数値として扱います。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
スキャン チェーン A の入力。入力信号 [WIDTH_A – 1, … 0] ワイド。 INPUT_SOURCE_A パラメータの値が SCANA の場合、scanina[] シグナルが必要です。
アキュムレータ値が定数かどうかを動的に指定します。 accum_sload 信号が Low の場合、乗算器の出力がアキュムレータにロードされます。 accum_sload と sload_accum を同時に使用しないでください。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 45

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

信号 sload_accum
チェーンイン[] addnsub1
追加サブ3
coefsel0[] coefsel1[] coefsel2[] coefsel3[]

必須 いいえ
いいえ いいえ
いいえ
いいえいいえいいえいいえ

説明
この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
アキュムレータ値が定数かどうかを動的に指定します。 sload_accum 信号が高い場合、乗算器の出力がアキュムレータにロードされます。 accum_sload と sload_accum を同時に使用しないでください。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
前の s からの加算結果入力バスtage. 入力信号 [WIDTH_CHAININ – 1, … 0] ワイド。
乗算器の最初のペアからの出力に対して加算または減算を実行します。 addnsub1 信号に 1 を入力して、乗算器の最初のペアからの出力を加算します。 addnsub0 信号に 1 を入力して、乗算器の最初のペアからの出力を減算します。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
乗算器の最初のペアからの出力に対して加算または減算を実行します。 addnsub1 信号に 3 を入力して、乗算器の 0 番目のペアからの出力を加算します。 addnsub3 信号に XNUMX を入力して、乗算器の最初のペアからの出力を減算します。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
最初の乗算器への係数入力信号 [0:3]。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
0 番目の乗算器への係数入力信号 [3:XNUMX]。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
0 番目の乗算器への係数入力信号 [3:XNUMX]。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。
0 番目の乗算器への係数入力信号 [3:XNUMX]。 この IP のシミュレーション モデルは、この信号への未定の入力値 (X) をサポートします。 この入力に X 値を指定すると、X 値が出力信号に伝搬されます。

表 29. Multiply Adder Intel FPGA IP 出力信号

信号

必須

説明

結果 []

はい

乗算器出力信号。 出力信号 [WIDTH_RESULT – 1 … 0] ワイド

この IP のシミュレーション モデルは未定の出力値 (X) をサポートしています。 X 値を入力として指定すると、X 値がこの信号に伝搬されます。

スキャンアウト []

いいえ

スキャン チェーン A の出力。出力信号 [WIDTH_A – 1..0] ワイド。

乗算器の数に 2 以上を選択し、この信号を有効にするには、パラメーターに接続されている乗算器の入力 A は何ですか に [スキャン チェーン入力] を選択します。

インテル FPGA 整数演算 IP コアのユーザーガイド 46

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

8.6。 パラメーター

8.6.1. 一般タブ

表 30. 一般タブ

パラメータ

IP 生成パラメーター

価値

マルチプライヤーの数は?

number_of_m 1 ~ 4 の乗数

A width_a 入力バスの幅はどれくらいですか?

1 – 256

B width_b 入力バスの幅はどれくらいですか?

1 – 256

「結果」出力バスの幅はどれくらいですか?

width_結果

1 – 256

各クロックに関連付けられたクロック イネーブルを作成します。

gui_associate オン d_clock_enabl オフ e

8.6.2. エクストラモードタブ

表 31. Extra Modes タブ

パラメータ

IP 生成パラメーター

価値

出力構成

加算器ユニットのレジスタ出力

gui_output_re オン

ギスター

オフ

クロック入力のソースは何ですか?

gui_output_register_clock

クロック0 クロック1 クロック2

非同期クリア入力のソースは何ですか?

gui_output_register_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_output_register_sclr

なし SCLR0 SCLR1

加算器演算

乗算器の最初のペアの出力に対してどのような操作を実行する必要がありますか?

gui_multiplier 1_direction

追加、サブ、変数

デフォルト値1
16

説明
加算する乗数の数。 値は 1 ~ 4 です。dataa[] ポートの幅を指定します。

16

datab[] ポートの幅を指定します。

32

result[] ポートの幅を指定します。

オフ

クロック イネーブルを作成するには、このオプションを選択します。

時計ごとに。

デフォルト値

説明

オフ クロック 0
なしなし

加算器モジュールの出力レジスタを有効にするには、このオプションを選択します。
Clock0 、Clock1 または Clock2 を選択して、出力レジスタのクロック ソースを有効にして指定します。 このパラメーターを有効にするには、加算器ユニットのレジスター出力を選択する必要があります。
加算器出力レジスタの非同期クリア ソースを指定します。 このパラメーターを有効にするには、加算器ユニットのレジスター出力を選択する必要があります。
加算器出力レジスタの同期クリア ソースを指定します。 このパラメーターを有効にするには、加算器ユニットのレジスター出力を選択する必要があります。

追加

XNUMX 番目と XNUMX 番目の乗算器の間の出力に対して実行する加算または減算演算を選択します。
・ADD を選択して加算演算を行います。
・SUB を選択して減算演算を行います。
· VARIABLE を選択すると、動的加減算制御に addnsub1 ポートが使用されます。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 47

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ

IP 生成パラメーター

価値

「addnsub1」入力を登録する

gui_addnsub_ オン Multiplier_reg オフ ister1

クロック入力のソースは何ですか?

gui_addnsub_multiplier_register1_clock

クロック0 クロック1 クロック2

非同期クリア入力のソースは何ですか?

gui_addnsub_multiplier_aclr 1

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_addnsub_multiplier_sclr 1

なし SCLR0 SCLR1

乗算器の XNUMX 番目のペアの出力に対してどのような操作を実行する必要がありますか?

gui_multiplier 3_direction

追加、サブ、変数

「addnsub3」入力を登録する

gui_addnsub_ オン Multiplier_reg オフ ister3

クロック入力のソースは何ですか?

gui_addnsub_multiplier_register3_clock

クロック0 クロック1 クロック2

デフォルト値
オフクロック0 なし なし 追加
オフ クロック 0

説明
VARIABLE 値が選択されている場合: · addnsub1 信号を High にドライブします。
追加操作。 · addnsub1 信号を Low にドライブします。
減算操作。 このパラメーターを有効にするには、XNUMX つ以上の乗数を選択する必要があります。
addnsub1 ポートの入力レジスタを有効にするには、このオプションを選択します。 このパラメーターを有効にするには、乗算器の最初のペアの出力に対して実行する操作に対して VARIABLE を選択する必要があります。
addnsub0 レジスターの入力クロック信号を指定するには、Clock1 、Clock2 または Clock1 を選択します。 このパラメーターを有効にするには、Register 'addnsub1' input を選択する必要があります。
addnsub1 レジスタの非同期クリア ソースを指定します。 このパラメーターを有効にするには、Register 'addnsub1' input を選択する必要があります。
addnsub1 レジスタの同期クリア ソースを指定します。 このパラメーターを有効にするには、Register 'addnsub1' input を選択する必要があります。
XNUMX 番目と XNUMX 番目の乗算器の間の出力に対して実行する加算または減算演算を選択します。 ・ADDを選択して加算を行う
手術。 ・SUBを選択して減算を行う
手術。 · addnsub1 を使用するには VARIABLE を選択します
動的加減算制御用ポート。 VARIABLE 値を選択した場合 ・ addnsub1 信号を High にして加算演算を行います。 · addnsub1 信号を Low にして減算演算を実行します。 [乗数の数は?] には値 4 を選択する必要があります。 このパラメーターを有効にします。
addnsub3 信号の入力レジスタを有効にするには、このオプションを選択します。 このパラメーターを有効にするには、乗算器の XNUMX 番目のペアの出力に対して実行する操作に対して VARIABLE を選択する必要があります。
addnsub0 レジスタの入力クロック信号を指定するには、Clock1 、Clock2 または Clock3 を選択します。 このパラメーターを有効にするには、Register 'addnsub3' input を選択する必要があります。
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 48

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ
非同期クリア入力のソースは何ですか?

IP 生成パラメーター

価値

gui_addnsub_multiplier_aclr 3

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_addnsub_multiplier_sclr 3

なし SCLR0 SCLR1

極性有効「use_subadd」

gui_use_subn オン

追加

オフ

8.6.3. 乗数タブ

表 32.乗数タブ

パラメータ

IP 生成パラメーター

価値

何ですか

gui_represent

表現形式 ation_a

乗算器 A 入力用?

署名付き、署名なし、変数

「signa」入力を登録する

gui_register_s オン

イグナ

オフ

クロック入力のソースは何ですか?

gui_register_s イグナクロック

クロック0 クロック1 クロック2

非同期クリア入力のソースは何ですか?

gui_register_s igna_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_register_s igna_sclr

なし SCLR0 SCLR1

何ですか

gui_represent

表現形式 ation_b

乗算器 B 入力用?

署名付き、署名なし、変数

「signb」入力を登録する

gui_register_s オン

イグンブ

オフ

デフォルト値 なし
なし

説明
addnsub3 レジスタの非同期クリア ソースを指定します。 このパラメーターを有効にするには、Register 'addnsub3' input を選択する必要があります。
addnsub3 レジスタの同期クリア ソースを指定します。 このパラメーターを有効にするには、Register 'addnsub3' input を選択する必要があります。

オフ

機能を逆にするには、このオプションを選択します

addnsub 入力ポートの。

減算操作のために addnsub をハイに駆動します。

加算操作のために addnsub を Low にドライブします。

デフォルト値

説明

UNSIGNED 乗数 A 入力の表現形式を指定します。

オフ

信号を有効にするには、このオプションを選択します

登録する。

[乗数 A 入力の表現形式は何ですか?] で VARIABLE 値を選択する必要があります。 このオプションを有効にするパラメーター。

クロック0

Clock0 、Clock1 または Clock2 を選択して、signa レジスターの入力クロック信号を有効にして指定します。
このパラメーターを有効にするには、['signa' 入力の登録] を選択する必要があります。

なし

signa レジスタの非同期クリア ソースを指定します。
このパラメーターを有効にするには、['signa' 入力の登録] を選択する必要があります。

なし

signa レジスタの同期クリア ソースを指定します。
このパラメーターを有効にするには、['signa' 入力の登録] を選択する必要があります。

UNSIGNED 乗数 B 入力の表現形式を指定します。

オフ

signb を有効にするには、このオプションを選択します

登録する。

続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 49

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ

IP 生成パラメーター

価値

デフォルト値

クロック入力のソースは何ですか?

gui_register_s ignb_ Clock

クロック0 クロック1 クロック2

クロック0

非同期クリア入力のソースは何ですか?

gui_register_s ignb_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_register_s ignb_sclr

なし SCLR0 SCLR1

入力構成
乗算器のレジスタ入力 A
クロック入力のソースは何ですか?

gui_input_reg オン

スター_a

オフ

gui_input_register_a_clock

クロック0 クロック1 クロック2

なしなし
オフ クロック 0

非同期クリア入力のソースは何ですか?

gui_input_register_a_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_input_register_a_sclr

なし SCLR0 SCLR1

乗算器のレジスタ入力 B
クロック入力のソースは何ですか?

gui_input_reg オン

スター_b

オフ

gui_input_register_b_clock

クロック0 クロック1 クロック2

なし なし オフ クロック 0

非同期クリア入力のソースは何ですか?

gui_input_register_b_aclr

なし ACLR0 ACLR1

なし

同期クリア入力のソースは何ですか?

gui_input_register_b_sclr

なし SCLR0 SCLR1

なし

乗算器の入力 A は何に接続されていますか?

gui_multiplier 乗数入力乗数

_a_input

スキャンチェーン入力入力

説明
[乗数 B 入力の表現形式は何ですか?] で VARIABLE 値を選択する必要があります。 このオプションを有効にするパラメーター。
Clock0 、Clock1 または Clock2 を選択して、signb レジスターの入力クロック信号を有効にして指定します。 このパラメーターを有効にするには、['signb' 入力の登録] を選択する必要があります。
signb レジスタの非同期クリア ソースを指定します。 このパラメーターを有効にするには、['signb' 入力の登録] を選択する必要があります。
signb レジスタの同期クリア ソースを指定します。 このパラメーターを有効にするには、['signb' 入力の登録] を選択する必要があります。
データ入力バスの入力レジスタを有効にするには、このオプションを選択します。
Clock0 、Clock1 または Clock2 を選択して、dataa 入力バスのレジスタ入力クロック信号を有効にして指定します。 このパラメーターを有効にするには、乗算器のレジスタ入力 A を選択する必要があります。
dataa 入力バスのレジスタ非同期クリア ソースを指定します。 このパラメーターを有効にするには、乗算器のレジスタ入力 A を選択する必要があります。
dataa 入力バスのレジスタ同期クリア ソースを指定します。 このパラメーターを有効にするには、乗算器のレジスタ入力 A を選択する必要があります。
このオプションを選択して、datab 入力バスの入力レジスタを有効にします。
Clock0 、Clock1 または Clock2 を選択して、datab 入力バスのレジスタ入力クロック信号を有効にして指定します。 このパラメータを有効にするには、乗算器のレジスタ入力 B を選択する必要があります。
datab 入力バスのレジスタ非同期クリア ソースを指定します。 このパラメータを有効にするには、乗算器のレジスタ入力 B を選択する必要があります。
datab 入力バスのレジスタ同期クリア ソースを指定します。 このパラメータを有効にするには、乗算器のレジスタ入力 B を選択する必要があります。
乗算器の入力 A の入力ソースを選択します。
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 50

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ

IP 生成パラメーター

価値

スキャンアウト A レジスタ構成

スキャンチェーンのレジスタ出力

gui_scanouta オン

_登録する

オフ

クロック入力のソースは何ですか?

gui_scanouta _register_cloc k

クロック0 クロック1 クロック2

非同期クリア入力のソースは何ですか?

gui_scanouta _register_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_scanouta _register_sclr

なし SCLR0 SCLR1

8.6.4. プレッダータブ

表 33. Preadder タブ

パラメータ

IP 生成パラメーター

価値

前置加算器モードの選択

preadder_mode

SIMPLE、COEF、INPUT、SQUARE、CONSTANT

デフォルト値

説明
乗算器へのソースとして dataa 入力バスを使用するには、Multiplier input を選択します。 乗算器へのソースとして scanin 入力バスを使用し、scanout 出力バスを有効にするには、Scan chain input を選択します。 このパラメーターは、乗数の数で 2、3、または 4 を選択した場合に使用できます。 パラメータ。

オフクロック0 なし なし

scanouta 出力バスの出力レジスタを有効にするには、このオプションを選択します。
乗算器の入力 A は何に接続されていますか? のスキャン チェーン入力を選択する必要があります。 このオプションを有効にするパラメーター。
scanouta 出力バスのレジスタ入力クロック信号を有効にして指定するには、Clock0 、Clock1 または Clock2 を選択します。
このオプションを有効にするには、スキャン チェーン パラメーターの Register output をオンにする必要があります。
scanouta 出力バスのレジスタ非同期クリア ソースを指定します。
このオプションを有効にするには、スキャン チェーン パラメーターの Register output をオンにする必要があります。
scanouta 出力バスのレジスタ同期クリア ソースを指定します。
このオプションを有効にするには、[スキャン チェーン パラメーターのレジスタ出力] を選択する必要があります。

デフォルト値
単純

説明
preadder モジュールの動作モードを指定します。 SIMPLE: このモードはプリアダーをバイパスします。 これがデフォルトのモードです。 COEF: このモードは、前置加算器の出力と coefsel 入力バスを乗算器への入力として使用します。 INPUT: このモードは、前置加算器の出力とデータ入力バスを乗算器への入力として使用します。 SQUARE: このモードは、前置加算器の出力を乗算器への両方の入力として使用します。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 51

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ

IP 生成パラメーター

価値

前置加算器の方向を選択

gui_preadder 追加、

_方向

サブ

C width_c 入力バスの幅はどれくらいですか?

1 – 256

データ C 入力レジスタの設定

データ入力の登録

gui_datac_inp オン

ut_register

オフ

クロック入力のソースは何ですか?

gui_datac_inp ut_register_clock

クロック0 クロック1 クロック2

非同期クリア入力のソースは何ですか?

gui_datac_inp ut_register_a clr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_datac_inp ut_register_sc lr

なし SCLR0 SCLR1

係数
係数幅はどのくらいの幅にする必要がありますか?

width_coef

1 – 27

Coef レジスタの設定

coefsel 入力を登録する

gui_coef_regi オン

スター

オフ

クロック入力のソースは何ですか?

gui_coef_register_clock

クロック0 クロック1 クロック2

デフォルト値
追加
16

説明
CONSTANT: このモードでは、プリアダーがバイパスされた dataa 入力バスと coefsel 入力バスを乗算器への入力として使用します。
前置加算器の動作を指定します。 このパラメータを有効にするには、Select preadder mode で次を選択します。 · COEF · INPUT · SQUARE または · CONSTANT
C 入力バスのビット数を指定します。 このパラメータを有効にするには、Select preadder mode で INPUT を選択する必要があります。

On Clock0 なし なし

データ入力バスの入力レジスタを有効にするには、このオプションを選択します。 このオプションを有効にするには、INPUT を Select preadder mode パラメータに設定する必要があります。
Clock0 、Clock1 または Clock2 を選択して、datac 入力レジスタの入力クロック信号を指定します。 このパラメーターを有効にするには、[データ入力の登録] を選択する必要があります。
datac 入力レジスタの非同期クリア ソースを指定します。 このパラメーターを有効にするには、[データ入力の登録] を選択する必要があります。
datac 入力レジスタの同期クリア ソースを指定します。 このパラメーターを有効にするには、[データ入力の登録] を選択する必要があります。

18

のビット数を指定します

coefsel 入力バス。

このパラメーターを有効にするには、前置加算器モードで COEF または CONSTANT を選択する必要があります。

オン クロック 0

coefsel 入力バスの入力レジスタを有効にするには、このオプションを選択します。 このパラメーターを有効にするには、前置加算器モードで COEF または CONSTANT を選択する必要があります。
クロック 0 、クロック 1 またはクロック 2 を選択して、coefsel 入力レジスタの入力クロック信号を指定します。 このパラメーターを有効にするには、[coefsel 入力の登録] を選択する必要があります。
続き…

インテル FPGA 整数演算 IP コアのユーザーガイド 52

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ
非同期クリア入力のソースは何ですか?

IP 生成パラメーター

価値

gui_coef_register_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか

gui_coef_register_sclr

なし SCLR0 SCLR1

Coefficient_0 の設定

coef0_0 ~ coef0_7

0x00000 0xFFFFFFF

Coefficient_1 の設定

coef1_0 ~ coef1_7

0x00000 0xFFFFFFF

Coefficient_2 の設定

coef2_0 ~ coef2_7

0x00000 0xFFFFFFF

Coefficient_3 の設定

coef3_0 ~ coef3_7

0x00000 0xFFFFFFF

8.6.5. アキュムレータタブ

表 34. アキュムレータ タブ

パラメータ

IP 生成パラメーター

価値

アキュムレータを有効にしますか?

アキュムレータ

はい・いいえ

アキュムレータ操作の種類は何ですか?

accum_directi ADD、

on

サブ

デフォルト値 なし
なし
0x0000000 0
0x0000000 0
0x0000000 0
0x0000000 0

説明
coefsel 入力レジスタの非同期クリア ソースを指定します。 このパラメーターを有効にするには、[coefsel 入力の登録] を選択する必要があります。
coefsel 入力レジスタの同期クリア ソースを指定します。 このパラメーターを有効にするには、[coefsel 入力の登録] を選択する必要があります。
この最初の乗数の係数値を指定します。 ビット数は、Coef 幅の幅は? で指定されたものと同じでなければなりません。 パラメータ。 このパラメーターを有効にするには、前置加算器モードで COEF または CONSTANT を選択する必要があります。
この XNUMX 番目の乗数の係数値を指定します。 ビット数は、Coef 幅の幅は? で指定されたものと同じでなければなりません。 パラメータ。 このパラメーターを有効にするには、前置加算器モードで COEF または CONSTANT を選択する必要があります。
この XNUMX 番目の乗数の係数値を指定します。 ビット数は、Coef 幅の幅は? で指定されたものと同じでなければなりません。 パラメータ。 このパラメーターを有効にするには、前置加算器モードで COEF または CONSTANT を選択する必要があります。
この XNUMX 番目の乗数の係数値を指定します。 ビット数は、Coef 幅の幅は? で指定されたものと同じでなければなりません。 パラメータ。 このパラメーターを有効にするには、前置加算器モードで COEF または CONSTANT を選択する必要があります。

デフォルト値 NO
追加

説明
YES を選択してアキュムレータを有効にします。 アキュムレータ機能を使用する場合は、加算器ユニットのレジスタ出力を選択する必要があります。
アキュムレータの演算を指定します。 · 加算演算の場合は ADD · 減算演算の場合は SUB。 [アキュムレータを有効にする] で [はい] を選択する必要がありますか? このオプションを有効にするパラメーター。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 53

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ
プリロード定数 プリロード定数を有効にする

IP 生成パラメーター

価値

gui_ena_prelo オン

ad_const

オフ

蓄積ポートの入力は何に接続されていますか?

gui_accumula ACCUM_SLOAD、te_port_select SLOAD_ACCUM

プリロード loadconst_val 0 ~ 64 の値を選択します

絶え間ない

ue

クロック入力のソースは何ですか?

gui_accum_sl oad_register_ クロック

クロック0 クロック1 クロック2

非同期クリア入力のソースは何ですか?

gui_accum_sl oad_register_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_accum_sl oad_register_sclr

なし SCLR0 SCLR1

ダブルアキュムレータを有効にする

gui_double_a オン

たまる

オフ

デフォルト値

説明

オフ

accum_sload または

sload_accum 信号とレジスタ入力

への入力を動的に選択する

アキュムレータ。

accum_sload が Low または sload_accum の場合、乗算器の出力はアキュムレータに供給されます。

accum_sload が High または sload_accum の場合、ユーザー指定のプリロード定数がアキュムレータに供給されます。

[アキュムレータを有効にする] で [はい] を選択する必要がありますか? このオプションを有効にするパラメーター。

ACCUM_SL OAD

accum_sload/sload_accum 信号の動作を指定します。
ACCUM_SLOAD: accum_sload を Low に駆動して、乗算器出力をアキュムレータにロードします。
SLOAD_ACCUM: 乗算器出力をアキュムレータにロードするには、sload_accum を High に駆動します。
このパラメーターを有効にするには、[プリロード定数を有効にする] オプションを選択する必要があります。

64

プリセット定数値を指定します。

この値は 2N にすることができます。ここで、N は事前設定された定数値です。

N=64 の場合、定数ゼロを表します。

このパラメーターを有効にするには、[プリロード定数を有効にする] オプションを選択する必要があります。

クロック0

accum_sload/sload_accum レジスターの入力クロック信号を指定するには、Clock0 、Clock1 または Clock2 を選択します。
このパラメーターを有効にするには、[プリロード定数を有効にする] オプションを選択する必要があります。

なし

accum_sload/sload_accum レジスターの非同期クリア ソースを指定します。
このパラメーターを有効にするには、[プリロード定数を有効にする] オプションを選択する必要があります。

なし

accum_sload/sload_accum レジスタの同期クリア ソースを指定します。
このパラメーターを有効にするには、[プリロード定数を有効にする] オプションを選択する必要があります。

オフ

ダブル アキュムレータ レジスタを有効にします。

インテル FPGA 整数演算 IP コアのユーザーガイド 54

フィードバックを送信

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

8.6.6. シストリック/チェーンアウト タブ

表 35. Systolic/Chainout Adder タブ

パラメータ Enable chainout adder

IP 生成パラメーター

価値

chainout_add はい、

er

いいえ

チェーンアウト加算器の操作タイプは何ですか?

chainout_add 追加、

er_direction

サブ

チェーンアウト加算器の「否定」入力を有効にしますか?

ポートネゲート

PORT_USED、PORT_UNUSED

「否定」入力を登録しますか? negate_register

未登録、CLOCK0、CLOCK1、CLOCK2、CLOCK3

非同期クリア入力のソースは何ですか?

negate_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

negate_sclr

なし SCLR0 SCLR1

収縮期遅延
シストリック遅延レジスターを有効にする

gui_systolic_d オン

イレイ

オフ

クロック入力のソースは何ですか?

gui_systolic_d CLOCK0、

遅延クロック

CLOCK1、

デフォルト値
いいえ

説明
チェーンアウト加算器モジュールを有効にするには、YES を選択します。

追加

チェーンアウト加算器操作を指定します。
減算演算の場合、乗算器 A 入力の表現形式は何ですか? で SIGNED を選択する必要があります。 乗算器 B 入力の表現形式は何ですか? 乗数タブで。

PORT_UN 使用済み

PORT_USED を選択して、ネゲート入力信号を有効にします。
chainout adder が無効な場合、このパラメータは無効です。

EREDの登録解除

ネゲート入力信号の入力レジスタを有効にし、ネゲートレジスタの入力クロック信号を指定します。
ネゲート入力レジスタが必要ない場合は、UNREGISTERED を選択します。
以下を選択した場合、このパラメーターは無効です。
· Enable chainout adder の場合は NO または
· チェインアウト加算器の「否定」入力を有効にするための PORT_UNUSED? パラメータまたは

なし

ネゲート レジスタの非同期クリア ソースを指定します。
以下を選択した場合、このパラメーターは無効です。
· Enable chainout adder の場合は NO または
· チェインアウト加算器の「否定」入力を有効にするための PORT_UNUSED? パラメータまたは

なし

ネゲート レジスタの同期クリア ソースを指定します。
以下を選択した場合、このパラメーターは無効です。
· Enable chainout adder の場合は NO または
· チェインアウト加算器の「否定」入力を有効にするための PORT_UNUSED? パラメータまたは

オフ CLOCK0

収縮モードを有効にするには、このオプションを選択します。 このパラメーターは、[乗数の数は?] で 2 または 4 を選択した場合に使用できます。 パラメータ。 シストリック遅延レジスタを使用するには、加算器ユニットのレジスタ出力を有効にする必要があります。
シストリック遅延レジスターの入力クロック信号を指定します。
続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 55

8. Intel FPGA Multiply Adder IP コア 683490 | 2020.10.05

パラメータ

IP 生成パラメーター

価値

CLOCK2、

非同期クリア入力のソースは何ですか?

gui_systolic_delay_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_systolic_delay_sclr

なし SCLR0 SCLR1

デフォルト値
なし
なし

説明
このオプションを有効にするには、シストリック遅延レジスタを有効にするを選択する必要があります。
シストリック遅延レジスタの非同期クリア ソースを指定します。 このオプションを有効にするには、シストリック遅延レジスタを有効にするを選択する必要があります。
シストリック遅延レジスターの同期クリア ソースを指定します。 このオプションを有効にするには、シストリック遅延レジスタを有効にするを選択する必要があります。

8.6.7. パイプライン タブ

表 36. パイプライン タブ

パラメータのパイプライン設定

IP 生成パラメーター

価値

パイプライン レジスタを入力に追加しますか?

gui_pipelining いいえ、はい

デフォルト値
いいえ

指定してください

レイテンシー

レイテンシクロック数

サイクル

0 より大きい 0 の任意の値

クロック入力のソースは何ですか?

gui_input_late cy_clock

CLOCK0、CLOCK1、CLOCK2

非同期クリア入力のソースは何ですか?

gui_input_late ncy_aclr

なし ACLR0 ACLR1

同期クリア入力のソースは何ですか?

gui_input_late ncy_sclr

なし SCLR0 SCLR1

CLOCK0 なし なし

説明
[はい] を選択して、パイプライン レジスタの追加レベルを入力信号に有効にします。 [レイテンシ クロック サイクル数を指定してください] パラメーターには、0 より大きい値を指定する必要があります。
必要なレイテンシをクロック サイクルで指定します。 パイプライン レジスタの 1 レベル = クロック サイクルでの XNUMX レイテンシ。 Do you want to add pipeline register to the input? に対して YES を選択する必要があります。 このオプションを有効にします。
パイプライン レジスタの入力クロック信号を有効にして指定するには、Clock0、Clock1、または Clock2 を選択します。 Do you want to add pipeline register to the input? に対して YES を選択する必要があります。 このオプションを有効にします。
追加パイプライン レジスタのレジスタ非同期クリア ソースを指定します。 Do you want to add pipeline register to the input? に対して YES を選択する必要があります。 このオプションを有効にします。
追加パイプライン レジスタのレジスタ同期クリア ソースを指定します。 Do you want to add pipeline register to the input? に対して YES を選択する必要があります。 このオプションを有効にします。

インテル FPGA 整数演算 IP コアのユーザーガイド 56

フィードバックを送信

683490 | 2020.10.05フィードバックを送信

9. ALTMEMMULT (メモリベースの定数係数乗算器) IP コア

注意:

インテルは、インテル Quartus Prime プロ・エディションのバージョン 20.3 でこの IP のサポートを削除しました。 デザインの IP コアが インテル Quartus Prime プロ・エディションのデバイスをターゲットにしている場合、IP を LPM_MULT インテル FPGA IP に置き換えるか、IP を再生成して インテル Quartus Prime スタンダード・エディション ソフトウェアを使用してデザインをコンパイルできます。

ALTMEMMULT IP コアは、インテル® FPGA にあるオンチップ・メモリー・ブロック (M512、M4K、M9K、および MLAB メモリー・ブロック) を使用してメモリーベースの乗算器を作成するために使用されます。 この IP コアは、ロジック エレメント (LE) に乗算器を実装するための十分なリソースまたは専用の乗算器リソースがない場合に役立ちます。
ALTMEMMULT IP コアは、クロックを必要とする同期機能です。 ALTMEMMULT IP コアは、特定のパラメーターと仕様のセットに対して可能な最小のスループットとレイテンシーで乗算器を実装します。
次の図は、ALTMEMMULT IP コアのポートを示しています。

図 21. ALTMEMMULT ポート

アルトメムルト

data_in[] sload_data coeff_in[]

結果[] 結果_有効なロード_完了

sload_coeff

sclr時計
インスト

関連情報 機能 (71 ページ)

9.1. 特徴
ALTMEMMULT IP コアは、次の機能を提供します。
Intel FPGA · 1 ビットのデータ幅をサポート · 符号付きおよび符号なしデータ表現形式をサポート · 固定出力レイテンシでパイプライン処理をサポート

インテルコーポレーション。 全著作権所有。 Intel、Intelロゴ、およびその他のIntelマークは、IntelCorporationまたはその子会社の商標です。 インテルは、FPGAおよび半導体製品のパフォーマンスをインテルの標準保証に従って現在の仕様に保証しますが、通知なしにいつでも製品およびサービスを変更する権利を留保します。 インテルは、インテルが書面で明示的に同意した場合を除き、本書に記載されている情報、製品、またはサービスの適用または使用から生じる責任または義務を負わないものとします。 インテルのお客様は、公開されている情報を信頼する前、および製品やサービスを注文する前に、最新バージョンのデバイス仕様を入手することをお勧めします。 *他の名前やブランドは他人の所有物として主張される場合があります。

ISO 9001:2015登録

9. ALTMEMMULT (メモリーベースの定数係数乗算器) IP コア 683490 | 2020.10.05
· 倍数の定数をランダム アクセス メモリ (RAM) に格納します。
· RAMブロックタイプを選択するオプションを提供
· オプションの同期クリアおよび負荷制御入力ポートをサポート
9.2. Verilog HDL プロトタイプ
次の Verilog HDL プロトタイプは、Verilog Design にあります。 File (.v) altera_mf.v のeda 合成ディレクトリ。
モジュール altmemmult #( パラメータ coeff_representation = 「SIGNED」、パラメータ係数 0 = 「UNUSED」、パラメータ data_representation = 「SIGNED」、パラメータ意図したデバイスファミリ = 「未使用」、パラメータ max_clock_cycles_per_result = 1、パラメータ number_of_coefficients = 1、パラメータ ram_block_type = 「AUTO」、パラメータtotal_latency = 1、パラメータ width_c = 1、パラメータ width_d = 1、パラメータ width_r = 1、パラメータ width_s = 1、パラメータ lpm_type = “altmemmult”、パラメータ lpm_hint = “unused”) ( 入力ワイヤ クロック、入力ワイヤ [width_c-1: 0]coeff_in、入力ワイヤ [width_d-1:0] data_in、出力ワイヤ load_done、出力ワイヤ [width_r-1:0] 結果、出力ワイヤ result_valid、入力ワイヤ sclr、入力ワイヤ [width_s-1:0] sel、入力wire sload_coeff, 入力 wire sload_data)/* 合成 syn_black_box=1 */; エンドモジュール
9.3. VHDL コンポーネント宣言
VHDL コンポーネント宣言は、VHDL デザインにあります。 File (.vhd) altera_mf_components.vhd librariesvhdlaltera_mf ディレクトリ。
コンポーネント altmemmult ジェネリック ( coeff_representation:string := "SIGNED"; 係数 0:string := "UNUSED"; data_representation:string := "SIGNED";意図した_device_family:string := "unused"; max_clock_cycles_per_result:natural := 1; number_of_coefficients:natural := 1; ram_block_type:string := “AUTO”; total_latency:natural; width_c:natural; width_d:natural; width_r:natural; width_s:natural := 1; lpm_hint:string := “UNUSED”; lpm_type:string := 「altmemmult」); port( clock:in std_logic; coeff_in:in std_logic_vector(width_c-1 downto 0) := (others => '0'); data_in:in std_logic_vector(width_d-1 downto 0);

インテル FPGA 整数演算 IP コアのユーザーガイド 58

フィードバックを送信

9. ALTMEMMULT (メモリーベースの定数係数乗算器) IP コア 683490 | 2020.10.05

load_done:out std_logic; result:out std_logic_vector(width_r-1 downto 0); result_valid:out std_logic; sclr: in std_logic := '0'; sel:in std_logic_vector(width_s-1 downto 0) := (その他 => '0'); sload_coeff: in std_logic := '0'; sload_data: in std_logic := '0'); エンドコンポーネント;

9.4. ポート

次の表に、ALTMEMMULT IP コアの入力ポートと出力ポートを示します。

表 37.ALTMEMMULT 入力ポート

ポート名

必須

説明

クロック

はい

乗算器へのクロック入力。

coeff_in[]

いいえ

乗算器の係数入力ポート。 入力ポートのサイズは、WIDTH_C パラメーターの値によって異なります。

データ入力[]

はい

乗算器へのデータ入力ポート。 入力ポートのサイズは、WIDTH_D パラメーターの値によって異なります。

スクロール

いいえ

同期クリア入力。 未使用の場合、デフォルト値はアクティブ ハイです。

セル[]

いいえ

固定係数の選択。 入力ポートのサイズは WIDTH_S に依存します

パラメータ値。

sload_coeff

いいえ

同期荷重係数入力ポート。 現在選択されている係数値を coeff_in 入力で指定された値に置き換えます。

sload_data

いいえ

同期負荷データ入力ポート。 新しい乗算演算を指定し、既存の乗算演算をキャンセルする信号。 MAX_CLOCK_CYCLES_PER_RESULT パラメーターの値が 1 の場合、sload_data 入力ポートは無視されます。

表 38. ALTMEMMULT 出力ポート

ポート名

必須

説明

結果[]

はい

乗算器出力ポート。 入力ポートのサイズは、WIDTH_R パラメーターの値によって異なります。

結果_有効

はい

出力が完全な乗算の有効な結果であることを示します。 MAX_CLOCK_CYCLES_PER_RESULT パラメーターの値が 1 の場合、result_valid 出力ポートは使用されません。

ロード完了

いいえ

新しい係数の読み込みが完了したことを示します。 新しい係数のロードが完了すると、load_done 信号がアサートされます。 load_done 信号が High でない限り、他の係数値をメモリにロードすることはできません。

9.5。 パラメーター

次の表に、ALTMEMMULT IP コアのパラメーターを示します。

表39.
WIDTH_D WIDTH_C

ALTMEMMULT パラメータ
パラメータ名

タイプ必須

説明

整数はい

data_in[] ポートの幅を指定します。

整数はい

coeff_in[] ポートの幅を指定します。 続き…

フィードバックを送信

インテル FPGA 整数演算 IP コアのユーザーガイド 59

9. ALTMEMMULT (メモリーベースの定数係数乗算器) IP コア 683490 | 2020.10.05

パラメータ名 WIDTH_R WIDTH

ドキュメント / リソース

intel FPGA 整数演算 IP コア [pdf] ユーザーガイド
FPGA 整数演算 IP コア, 整数演算 IP コア, 演算 IP コア, IP コア

参考文献

コメントを残す

あなたのメールアドレスは公開されません。 必須項目はマークされています *