インテル® Hyperflex™ アーキテクチャー高性能デザイン・ハンドブック

ID 683353
日付 10/04/2021
Public
ドキュメント目次

2.4.2.17. 三進加算器

三進加算器を実装すると、 インテル® Hyperflex™ アーキーテクチャーFPGAのリソース使用量が増加する可能性があります。 ただし、デザインが三進加算器構造に大きく依存していない限り、最上位のデザインレベルで追加のリソース使用量が目立たない場合があります。ただし、三進加算器構造を追加するデザインレベルを確認すると、LUTカウントが増加していることがわかります。さらに、リソースの増加量は加算器のサイズに直接相関します。小さな幅の加算器(サイズ<16ビット)は、リソースの大きな違いを引き起こしません。ただし、加算器のサイズを大きくすると、古いFPGAテクノロジーと比較して、リソースカウントの差が大きくなります。

三進加算器RTLコード 

module ternary_adder (CLK, A, B, C, OUT);
	parameter WIDTH = 16;
	input [WIDTH-1:0] A, B, C;
	input 			  CLK;
	output [WIDTH-1:0] OUT;

	wire [WIDTH-1:0]    sum1;	
	reg [WIDTH-1:0]   sumreg1;

   	// 3-bit additions
	assign 			  sum1 = A + B + C;		
	assign 			  OUT = sumreg1;

	// Registers
	always @ (posedge CLK)
		begin
			sumreg1 <= sum1;
		end
endmodule

このデバイスリソース使用の増加は、 インテル® Hyperflex™ アーキテクチャーALMには、以前のFPGAテクノロジーにあった共有演算モードがありません。共有演算モードのALMは、ALMに3入力加算を実装できます。対照的に、 インテル® Hyperflex™ アーキテクチャーALMは、ALMで2入力アドのみを実装できます。

図 77.  インテル® Arria® 10 インテル® Hyperflex™ アーキテクチャーFPGAのRTLビューで、3つの8ビット入力加算器から2 LSBの追加

共有演算モードでは、 インテル® Arria® 10 ALMを使用すると、3入力加算器でCINSHAREINCOUTSUMOUT、およびSHAREOUTの 3つの適応LUT(ALUT)入力を使用できます。共有算術モードがないため、2つのALUT入力CINCOUT、およびSUMOUTのみでALMの使用が制限されます。次の図は、 インテル® Arria® 10および インテル® Hyperflex™ アーキテクチャFPGAの両方での3項加算器の実装結果を示しています。

図 78.  インテル® Arria® 10:3つの8ビット入力加算器から2つのLSBを追加するために使用されるALM
図 79.  インテル® Hyperflex™ アーキテクチャーFPGA:3つの8ビット入力加算器から2つのLSBを追加するために使用されるALM