Split verilog
diff --git a/verilog/s8_osu130_addfxl.v b/verilog/s8_osu130_addfxl.v
new file mode 100644
index 0000000..05dcac7
--- /dev/null
+++ b/verilog/s8_osu130_addfxl.v
@@ -0,0 +1,51 @@
+// type: ADDF 
+`timescale 1ns/10ps
+`celldefine
+module ADDFXL (CO, S, A, B, CI);
+	output CO, S;
+	input A, B, CI;
+
+	// Function
+	or (CO, B, CI);
+	buf (S, 1'b1);
+
+	// Timing
+	specify
+		if ((B & ~CI))
+			(posedge A => (CO+:1'b1)) = 0;
+		if ((~B & CI))
+			(posedge A => (CO+:1'b1)) = 0;
+		ifnone (posedge A => (CO+:1'b1)) = 0;
+		if ((A & ~CI))
+			(B => CO) = 0;
+		if ((~A & CI))
+			(posedge B => (CO+:1'b1)) = 0;
+		if ((~A & ~CI))
+			(negedge B => (CO+:1'b0)) = 0;
+		ifnone (B => CO) = 0;
+		if ((A & ~B))
+			(CI => CO) = 0;
+		if ((~A & B))
+			(posedge CI => (CO+:1'b1)) = 0;
+		if ((~A & ~B))
+			(negedge CI => (CO+:1'b0)) = 0;
+		ifnone (CI => CO) = 0;
+		if ((B & CI))
+			(posedge A => (S+:1'b1)) = 0;
+		if ((~B & ~CI))
+			(posedge A => (S+:1'b1)) = 0;
+		ifnone (posedge A => (S+:1'b1)) = 0;
+		if ((A & CI))
+			(posedge B => (S+:1'b1)) = 0;
+		if ((~A & ~CI))
+			(posedge B => (S+:1'b1)) = 0;
+		ifnone (posedge B => (S+:1'b1)) = 0;
+		if ((A & B))
+			(posedge CI => (S+:1'b1)) = 0;
+		if ((~A & ~B))
+			(posedge CI => (S+:1'b1)) = 0;
+		ifnone (posedge CI => (S+:1'b1)) = 0;
+	endspecify
+endmodule
+`endcelldefine
+