インテルのみ表示可能 — GUID: mwh1409959578039
Ixiasoft
1.4.1.1. 同期メモリーブロックの使用
1.4.1.2. サポートされないリセットおよびコントロール条件の回避
1.4.1.3. Read-During-Write動作の確認
1.4.1.4. RAMの推論と実装の制御
1.4.1.5. シングルクロック同期RAM (古いデータでのRead-During-Write動作)
1.4.1.6. シングルクロック同期RAM (新しいデータでのRead-During-Write動作)
1.4.1.7. シンプル・デュアルポート、デュアルクロック同期RAM
1.4.1.8. トゥルー・デュアルポート同期RAM
1.4.1.9. 混合幅デュアルポートRAM
1.4.1.10. バイト・イネーブル信号を備えるRAM
1.4.1.11. 電源投入時の初期のメモリーコンテンツの指定
インテルのみ表示可能 — GUID: mwh1409959578039
Ixiasoft
1.3.2. 乗累および積和関数の推論
合成ツールは乗累または積和関数を検出し、それらをインテル FPGA IPコアとして実装する、もしくはデバイスアトムに直接マッピングします。 配置配線時に、 インテル® Quartus® Prime開発ソフトウェアは、乗累および積和関数をDSPブロックに配置します。
注: 合成ツールは、乗累および積和関数を推論します。ただし、インテル・デバイスファミリーにこれらの関数をサポートする専用のDSPブロックがある場合に限ります。
単純な乗累演算器は、加算演算子に供給される乗算器で構成されます。加算演算子は一連のレジスターに供給され、その後、2番目の入力を加算演算子に供給します。単純な積和演算器は2から4個の乗算器で構成され、1から2レベルの加算、減算、または加算/減算演算子に供給されます。加算は、使用されている場合は常に第2レベルの演算子です。乗累演算器と積和演算器の他にも、 インテル® Quartus® Primeのフィッターは、入力および出力レジスターをDSPブロックに配置してレジスターをパッキングし、パフォーマンスと領域使用率を向上させます。
一部のデバイスファミリーは、高度な累乗および積和演算 (複雑な乗算、入力シフトレジスター、またはより大きな乗算など) の追加機能を提供します。
Verilog HDLおよびVHDLコード例では、入力、出力、パイプライン・レジスター、およびオプションの非同期 clear 信号を備える乗累および積和関数を推論します。3セットのレジスターを使用すると、関数全体で最良のパフォーマンスが得られます。レイテンシーは3です。レイテンシーを小さくするには、デザインのレジスターを削除します。
注: DSPのデザインで高いパフォーマンスを得るには、レジスターのパイプライン化を使用して、レジスターされないDSP機能を避けるようにします。
Verilog HDL乗累演算器
module sum_of_four_multiply_accumulate #(parameter INPUT_WIDTH=18, parameter OUTPUT_WIDTH=44) ( input clk, ena, input [INPUT_WIDTH-1:0] dataa, datab, datac, datad, input [INPUT_WIDTH-1:0] datae, dataf, datag, datah, output reg [OUTPUT_WIDTH-1:0] dataout ); // Each product can be up to 2*INPUT_WIDTH bits wide. // The sum of four of these products can be up to 2 bits wider. wire [2*INPUT_WIDTH+1:0] mult_sum; // Store the results of the operations on the current inputs assign mult_sum = (dataa * datab + datac * datad) + (datae * dataf + datag * datah); // Store the value of the accumulation always @ (posedge clk) begin if (ena == 1) begin dataout <= dataout + mult_sum; end end endmodule