// Generated by Cadence Encounter(R) RTL Compiler RC10.1.306 - v10.10-s357_1

// Verification Directory fv/ripple_16 

module bfa_structural(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_1(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_2(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_3(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module ripple_4(sum, cout, a, b, cin);
  input [3:0] a, b;
  input cin;
  output [3:0] sum;
  output cout;
  wire [3:0] a, b;
  wire cin;
  wire [3:0] sum;
  wire cout;
  wire c0, c1, c2;
  bfa_structural bfa0(sum[0], c0, a[0], b[0], cin);
  bfa_structural_1 bfa1(sum[1], c1, a[1], b[1], c0);
  bfa_structural_2 bfa2(sum[2], c2, a[2], b[2], c1);
  bfa_structural_3 bfa3(sum[3], cout, a[3], b[3], c2);
endmodule

module bfa_structural_4(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_5(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_6(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_7(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module ripple_4_1(sum, cout, a, b, cin);
  input [3:0] a, b;
  input cin;
  output [3:0] sum;
  output cout;
  wire [3:0] a, b;
  wire cin;
  wire [3:0] sum;
  wire cout;
  wire c0, c1, c2;
  bfa_structural_4 bfa0(.sum (sum[0]), .cout (c0), .a (a[0]), .b
       (b[0]), .cin (cin));
  bfa_structural_5 bfa1(.sum (sum[1]), .cout (c1), .a (a[1]), .b
       (b[1]), .cin (c0));
  bfa_structural_6 bfa2(.sum (sum[2]), .cout (c2), .a (a[2]), .b
       (b[2]), .cin (c1));
  bfa_structural_7 bfa3(.sum (sum[3]), .cout (cout), .a (a[3]), .b
       (b[3]), .cin (c2));
endmodule

module bfa_structural_8(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_9(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_10(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_11(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module ripple_4_2(sum, cout, a, b, cin);
  input [3:0] a, b;
  input cin;
  output [3:0] sum;
  output cout;
  wire [3:0] a, b;
  wire cin;
  wire [3:0] sum;
  wire cout;
  wire c0, c1, c2;
  bfa_structural_8 bfa0(.sum (sum[0]), .cout (c0), .a (a[0]), .b
       (b[0]), .cin (cin));
  bfa_structural_9 bfa1(.sum (sum[1]), .cout (c1), .a (a[1]), .b
       (b[1]), .cin (c0));
  bfa_structural_10 bfa2(.sum (sum[2]), .cout (c2), .a (a[2]), .b
       (b[2]), .cin (c1));
  bfa_structural_11 bfa3(.sum (sum[3]), .cout (cout), .a (a[3]), .b
       (b[3]), .cin (c2));
endmodule

module bfa_structural_12(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_13(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_14(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module bfa_structural_15(sum, cout, a, b, cin);
  input a, b, cin;
  output sum, cout;
  wire a, b, cin;
  wire sum, cout;
  FAX1 g56(.A (cin), .B (a), .C (b), .YC (cout), .YS (sum));
endmodule

module ripple_4_3(sum, cout, a, b, cin);
  input [3:0] a, b;
  input cin;
  output [3:0] sum;
  output cout;
  wire [3:0] a, b;
  wire cin;
  wire [3:0] sum;
  wire cout;
  wire c0, c1, c2;
  bfa_structural_12 bfa0(.sum (sum[0]), .cout (c0), .a (a[0]), .b
       (b[0]), .cin (cin));
  bfa_structural_13 bfa1(.sum (sum[1]), .cout (c1), .a (a[1]), .b
       (b[1]), .cin (c0));
  bfa_structural_14 bfa2(.sum (sum[2]), .cout (c2), .a (a[2]), .b
       (b[2]), .cin (c1));
  bfa_structural_15 bfa3(.sum (sum[3]), .cout (cout), .a (a[3]), .b
       (b[3]), .cin (c2));
endmodule

module ripple_16(sum, cout, a, b, cin);
  input [15:0] a, b;
  input cin;
  output [15:0] sum;
  output cout;
  wire [15:0] a, b;
  wire cin;
  wire [15:0] sum;
  wire cout;
  wire c0, c1, c2;
  ripple_4 r1(sum[3:0], c0, a[3:0], b[3:0], cin);
  ripple_4_1 r2(sum[7:4], c1, a[7:4], b[7:4], c0);
  ripple_4_2 r3(sum[11:8], c2, a[11:8], b[11:8], c1);
  ripple_4_3 r4(sum[15:12], cout, a[15:12], b[15:12], c2);
endmodule