bl_deltaz.v 3.42 KB
////////////////////////////////////////////////////////////////////////
//
// 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