vi_lerp_csa_add10.v
1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
////////////////////////////////////////////////////////////////////////
//
// Project Reality
//
// module: vi_lerp_csa_add10
// description: Final carry-propigating adder for csa tree for
// lerp for video interface.
// 10 bits in and out, no carry i/o.
//
// designer: Phil Gossett
// date: 3/30/95
//
////////////////////////////////////////////////////////////////////////
// $Id: vi_lerp_csa_add10.v,v 1.1 2002/03/28 00:26:14 berndt Exp $
module vi_lerp_csa_add10 (a, b, s);
input [9:0] a;
input [9:0] b;
wire [8:0] c;
output [9:0] s;
xo02d1 s00 (.a1(a[0]), .a2(b[0]), .z(s[0])); // output
an02d1 c00 (.a1(a[0]), .a2(b[0]), .z(c[0]));
ad01d1 ad1 ( .a(a[1]), .b(b[1]), .ci(c[0]), .s(s[1]), .co(c[1]));
ad01d1 ad2 ( .a(a[2]), .b(b[2]), .ci(c[1]), .s(s[2]), .co(c[2]));
ad01d1 ad3 ( .a(a[3]), .b(b[3]), .ci(c[2]), .s(s[3]), .co(c[3]));
ad01d1 ad4 ( .a(a[4]), .b(b[4]), .ci(c[3]), .s(s[4]), .co(c[4]));
ad01d1 ad5 ( .a(a[5]), .b(b[5]), .ci(c[4]), .s(s[5]), .co(c[5]));
ad01d1 ad6 ( .a(a[6]), .b(b[6]), .ci(c[5]), .s(s[6]), .co(c[6]));
ad01d1 ad7 ( .a(a[7]), .b(b[7]), .ci(c[6]), .s(s[7]), .co(c[7]));
ad01d1 ad8 ( .a(a[8]), .b(b[8]), .ci(c[7]), .s(s[8]), .co(c[8]));
xo03d1 ad9 (.a1(a[9]), .a2(b[9]), .a3(c[8]), .z(s[9]));
endmodule // vi_lerp_csa_add10