diff --git a/techlibs/common/techmap.v b/techlibs/common/techmap.v
index 7fb8173b0..38ca33cb9 100644
--- a/techlibs/common/techmap.v
+++ b/techlibs/common/techmap.v
@@ -230,6 +230,7 @@ module _90_lcu (P, G, CI, CO);
 		// in almost all cases CI will be constant zero
 		g[0] = g[0] | (p[0] & CI);
 
+`ifndef KOGGE_STONE
 		// [[CITE]] Brent Kung Adder
 		// R. P. Brent and H. T. Kung, "A Regular Layout for Parallel Adders",
 		// IEEE Transaction on Computers, Vol. C-31, No. 3, p. 260-264, March, 1982
@@ -249,6 +250,14 @@ module _90_lcu (P, G, CI, CO);
 				p[j] = p[j] & p[j - 2**(i-1)];
 			end
 		end
+`else
+		for (i = 0; i < $clog2(WIDTH); i = i + 1) begin
+			for (j = 2**i; j < WIDTH; j = j + 1) begin
+				g[j] = g[j] | p[j] & g[j - 2**i];
+				p[j] = p[j] & p[j - 2**i];
+			end
+		end
+`endif
 	end
 
 	assign CO = g;