Visible to Intel only — GUID: dib1504070106841
Ixiasoft
Visible to Intel only — GUID: dib1504070106841
Ixiasoft
2.4.2.17. Ternary Adders
Ternary Adder RTL Code
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
This increase in device resource use occurs because the Hyperflex® architecture ALM does not have a shared arithmetic mode that previous FPGA technologies have. The ALM in shared arithmetic mode can implement a three-input add in the ALM. By contrast, the Hyperflex® architecture ALM can implement only a two-input add in the ALM.
In shared arithmetic mode, the Arria® 10 ALM allows a three-input adder to use three adaptive LUT (ALUT) inputs: CIN, SHAREIN, COUT, SUMOUT, and SHAREOUT. The absence of the shared arithmetic mode restricts ALM use with only two ALUT inputs: CIN, COUT and SUMOUT. The figure below shows the resulting implementation of a ternary adder on both Arria® 10 and Hyperflex® architecture FPGAs.