bl_deltaz.v
3.42 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
////////////////////////////////////////////////////////////////////////
//
// Project Reality
//
// module: bl_deltaz
// description: Generate deltaz (max of abs of dzdx and dzdy)
// for blend unit.
//
// designer: Phil Gossett
// date: 8/24/94
//
////////////////////////////////////////////////////////////////////////
module bl_deltaz (sel, prim, dzdx, dzdy, deltaz);
input sel;
input [15:0] prim;
input [15:0] dzdx;
input [15:0] dzdy;
output [15:0] deltaz;
wire [14:0] adx;
wire [14:0] ady;
wire [15:0] sum;
wire [15:0] pix;
xo02d1h xox0 (.a1(dzdx[15]), .a2(dzdx[ 0]), .z(adx[ 0]));
xo02d1h xox1 (.a1(dzdx[15]), .a2(dzdx[ 1]), .z(adx[ 1]));
xo02d1h xox2 (.a1(dzdx[15]), .a2(dzdx[ 2]), .z(adx[ 2]));
xo02d1h xox3 (.a1(dzdx[15]), .a2(dzdx[ 3]), .z(adx[ 3]));
xo02d1h xox4 (.a1(dzdx[15]), .a2(dzdx[ 4]), .z(adx[ 4]));
xo02d1h xox5 (.a1(dzdx[15]), .a2(dzdx[ 5]), .z(adx[ 5]));
xo02d1h xox6 (.a1(dzdx[15]), .a2(dzdx[ 6]), .z(adx[ 6]));
xo02d1h xox7 (.a1(dzdx[15]), .a2(dzdx[ 7]), .z(adx[ 7]));
xo02d1h xox8 (.a1(dzdx[15]), .a2(dzdx[ 8]), .z(adx[ 8]));
xo02d1h xox9 (.a1(dzdx[15]), .a2(dzdx[ 9]), .z(adx[ 9]));
xo02d1h xoxa (.a1(dzdx[15]), .a2(dzdx[10]), .z(adx[10]));
xo02d1h xoxb (.a1(dzdx[15]), .a2(dzdx[11]), .z(adx[11]));
xo02d1h xoxc (.a1(dzdx[15]), .a2(dzdx[12]), .z(adx[12]));
xo02d1h xoxd (.a1(dzdx[15]), .a2(dzdx[13]), .z(adx[13]));
xo02d1h xoxe (.a1(dzdx[15]), .a2(dzdx[14]), .z(adx[14]));
xo02d1h xoy0 (.a1(dzdy[15]), .a2(dzdy[ 0]), .z(ady[ 0]));
xo02d1h xoy1 (.a1(dzdy[15]), .a2(dzdy[ 1]), .z(ady[ 1]));
xo02d1h xoy2 (.a1(dzdy[15]), .a2(dzdy[ 2]), .z(ady[ 2]));
xo02d1h xoy3 (.a1(dzdy[15]), .a2(dzdy[ 3]), .z(ady[ 3]));
xo02d1h xoy4 (.a1(dzdy[15]), .a2(dzdy[ 4]), .z(ady[ 4]));
xo02d1h xoy5 (.a1(dzdy[15]), .a2(dzdy[ 5]), .z(ady[ 5]));
xo02d1h xoy6 (.a1(dzdy[15]), .a2(dzdy[ 6]), .z(ady[ 6]));
xo02d1h xoy7 (.a1(dzdy[15]), .a2(dzdy[ 7]), .z(ady[ 7]));
xo02d1h xoy8 (.a1(dzdy[15]), .a2(dzdy[ 8]), .z(ady[ 8]));
xo02d1h xoy9 (.a1(dzdy[15]), .a2(dzdy[ 9]), .z(ady[ 9]));
xo02d1h xoya (.a1(dzdy[15]), .a2(dzdy[10]), .z(ady[10]));
xo02d1h xoyb (.a1(dzdy[15]), .a2(dzdy[11]), .z(ady[11]));
xo02d1h xoyc (.a1(dzdy[15]), .a2(dzdy[12]), .z(ady[12]));
xo02d1h xoyd (.a1(dzdy[15]), .a2(dzdy[13]), .z(ady[13]));
xo02d1h xoye (.a1(dzdy[15]), .a2(dzdy[14]), .z(ady[14]));
bl_deltaz_add15 ad15 (.a(adx), .b(ady), .s(sum));
bl_deltaz_quant quan (.i(sum), .z(pix));
mx21d1h mux0 (.s(sel), .i0(pix[ 0]), .i1(prim[ 0]), .z(deltaz[ 0]));
mx21d1h mux1 (.s(sel), .i0(pix[ 1]), .i1(prim[ 1]), .z(deltaz[ 1]));
mx21d1h mux2 (.s(sel), .i0(pix[ 2]), .i1(prim[ 2]), .z(deltaz[ 2]));
mx21d1h mux3 (.s(sel), .i0(pix[ 3]), .i1(prim[ 3]), .z(deltaz[ 3]));
mx21d1h mux4 (.s(sel), .i0(pix[ 4]), .i1(prim[ 4]), .z(deltaz[ 4]));
mx21d1h mux5 (.s(sel), .i0(pix[ 5]), .i1(prim[ 5]), .z(deltaz[ 5]));
mx21d1h mux6 (.s(sel), .i0(pix[ 6]), .i1(prim[ 6]), .z(deltaz[ 6]));
mx21d1h mux7 (.s(sel), .i0(pix[ 7]), .i1(prim[ 7]), .z(deltaz[ 7]));
mx21d1h mux8 (.s(sel), .i0(pix[ 8]), .i1(prim[ 8]), .z(deltaz[ 8]));
mx21d1h mux9 (.s(sel), .i0(pix[ 9]), .i1(prim[ 9]), .z(deltaz[ 9]));
mx21d1h muxa (.s(sel), .i0(pix[10]), .i1(prim[10]), .z(deltaz[10]));
mx21d1h muxb (.s(sel), .i0(pix[11]), .i1(prim[11]), .z(deltaz[11]));
mx21d1h muxc (.s(sel), .i0(pix[12]), .i1(prim[12]), .z(deltaz[12]));
mx21d1h muxd (.s(sel), .i0(pix[13]), .i1(prim[13]), .z(deltaz[13]));
mx21d1h muxe (.s(sel), .i0(pix[14]), .i1(prim[14]), .z(deltaz[14]));
mx21d1h muxf (.s(sel), .i0(pix[15]), .i1(prim[15]), .z(deltaz[15]));
endmodule // bl_deltaz