Intel® Hyperflex™ 体系结构高性能设计手册

ID 683353
日期 10/04/2021
Public
文档目录

2.4.2.17. 三元加法器(Ternary Adders)

实现三元加法器可以增加 Intel® 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

器件资源使用量的增加是因为 Intel® Hyperflex™ 体系结构ALM没有以前的FPGA技术所具有的共享算术模式。共享算术模式下的ALM可以在ALM中实现三输入加法。相比之下, Intel® Hyperflex™ 体系结构ALM只能在ALM中实现两输入加法。

图 78. 从一个three 8-bit输入加法器加入2个LSB的 Intel® Arria® 10 Intel® Hyperflex™ 体系结构FPGA的RTL视图

在共享算术模式下, Intel® Arria® 10 ALM支持三输入加法器使用三个自适应LUT (ALUT)输入:CINSHAREINCOUTSUMOUTSHAREOUT。缺少共享算术模式会限制ALM仅使用两个ALUT输入:CINCOUTSUMOUT。下图显示了在 Intel® Arria® 10 Intel® Hyperflex™ 体系结构FPGA上的三元加法器的实现结果。

图 79.  Intel® Arria® 10: ALM用于从一个three 8-bit输入加法器加入2个LSB
图 80.  Intel® Hyperflex™ 体系结构FPGA:ALM用于从一个three 8-bit输入加法器加入2个LSB