module adder_reg ( A, B, Cin, clk, rst, Cout, Sum_reg );
input A, B, Cin, clk, rst;
output Cout, Sum_reg;
wire Sum, n1, n3, n4, n6, n7;
DFFSR Sum_reg_reg ( .D(Sum), .CLK(clk), .R(n1), .S(1'b1), .Q(Sum_reg) );
INVX1 U3 ( .A(rst), .Y(n1) );
XOR2X1 U6 ( .A(n3), .B(n4), .Y(Sum) );
OAI21X1 U7 ( .A(n4), .B(n3), .C(n7), .Y(Cout) );
XNOR2X1 U9 ( .A(A), .B(B), .Y(n4) );
AND2X1 U10 ( .A(A), .B(B), .Y(n6) );
INVX1 U11 ( .A(n6), .Y(n7) );
INVX1 U12 ( .A(Cin), .Y(n3) );
endmodule