cc_key_clamp.v 3.97 KB
////////////////////////////////////////////////////////////////////////
//
// Project Reality
//
// module:	cc_key_clamp
// description: Clamp for color key for color combine unit.
//
// designer:	Phil Gossett
// date:	9/20/94
//
////////////////////////////////////////////////////////////////////////

module cc_key_clamp (r, g, b, clmp_r, clmp_g, clmp_b);

input [16:0] r;
input [16:0] g;
input [16:0] b;

output [7:0] clmp_r;
output [7:0] clmp_g;
output [7:0] clmp_b;

wire or_r;
wire or_g;
wire or_b;
wire [7:0] p_clmp_r;
wire [7:0] p_clmp_g;
wire [7:0] p_clmp_b;
wire r16;
wire g16;
wire b16;

or08d2  orr8 (	.a1(r[ 8]), .a2(r[ 9]), .a3(r[10]), .a4(r[11]), 
		.a5(r[12]), .a6(r[13]), .a7(r[14]), .a8(r[15]), .z(or_r));
or08d2  org8 (	.a1(g[ 8]), .a2(g[ 9]), .a3(g[10]), .a4(g[11]), 
		.a5(g[12]), .a6(g[13]), .a7(g[14]), .a8(g[15]), .z(or_g));
or08d2  orb8 (	.a1(b[ 8]), .a2(b[ 9]), .a3(b[10]), .a4(b[11]), 
		.a5(b[12]), .a6(b[13]), .a7(b[14]), .a8(b[15]), .z(or_b));

or02d1  orr0 (	.a1( or_r), .a2(       r[0]), .z(p_clmp_r[0]));
or02d1  orr1 (	.a1( or_r), .a2(       r[1]), .z(p_clmp_r[1]));
or02d1  orr2 (	.a1( or_r), .a2(       r[2]), .z(p_clmp_r[2]));
or02d1  orr3 (	.a1( or_r), .a2(       r[3]), .z(p_clmp_r[3]));
or02d1  orr4 (	.a1( or_r), .a2(       r[4]), .z(p_clmp_r[4]));
or02d1  orr5 (	.a1( or_r), .a2(       r[5]), .z(p_clmp_r[5]));
or02d1  orr6 (	.a1( or_r), .a2(       r[6]), .z(p_clmp_r[6]));
or02d1  orr7 (	.a1( or_r), .a2(       r[7]), .z(p_clmp_r[7]));

or02d1  org0 (	.a1( or_g), .a2(       g[0]), .z(p_clmp_g[0]));
or02d1  org1 (	.a1( or_g), .a2(       g[1]), .z(p_clmp_g[1]));
or02d1  org2 (	.a1( or_g), .a2(       g[2]), .z(p_clmp_g[2]));
or02d1  org3 (	.a1( or_g), .a2(       g[3]), .z(p_clmp_g[3]));
or02d1  org4 (	.a1( or_g), .a2(       g[4]), .z(p_clmp_g[4]));
or02d1  org5 (	.a1( or_g), .a2(       g[5]), .z(p_clmp_g[5]));
or02d1  org6 (	.a1( or_g), .a2(       g[6]), .z(p_clmp_g[6]));
or02d1  org7 (	.a1( or_g), .a2(       g[7]), .z(p_clmp_g[7]));

or02d1  orb0 (	.a1( or_b), .a2(       b[0]), .z(p_clmp_b[0]));
or02d1  orb1 (	.a1( or_b), .a2(       b[1]), .z(p_clmp_b[1]));
or02d1  orb2 (	.a1( or_b), .a2(       b[2]), .z(p_clmp_b[2]));
or02d1  orb3 (	.a1( or_b), .a2(       b[3]), .z(p_clmp_b[3]));
or02d1  orb4 (	.a1( or_b), .a2(       b[4]), .z(p_clmp_b[4]));
or02d1  orb5 (	.a1( or_b), .a2(       b[5]), .z(p_clmp_b[5]));
or02d1  orb6 (	.a1( or_b), .a2(       b[6]), .z(p_clmp_b[6]));
or02d1  orb7 (	.a1( or_b), .a2(       b[7]), .z(p_clmp_b[7]));

ni01d4  ivr  (	.i(r[16]), .z(r16));
ni01d4  ivg  (	.i(g[16]), .z(g16));
ni01d4  ivb  (	.i(b[16]), .z(b16));

an02d1h anr0 (	.a1(r16), .a2(p_clmp_r[0]), .z( clmp_r[0]));
an02d1h anr1 (	.a1(r16), .a2(p_clmp_r[1]), .z( clmp_r[1]));
an02d1h anr2 (	.a1(r16), .a2(p_clmp_r[2]), .z( clmp_r[2]));
an02d1h anr3 (	.a1(r16), .a2(p_clmp_r[3]), .z( clmp_r[3]));
an02d1h anr4 (	.a1(r16), .a2(p_clmp_r[4]), .z( clmp_r[4]));
an02d1h anr5 (	.a1(r16), .a2(p_clmp_r[5]), .z( clmp_r[5]));
an02d1h anr6 (	.a1(r16), .a2(p_clmp_r[6]), .z( clmp_r[6]));
an02d1h anr7 (	.a1(r16), .a2(p_clmp_r[7]), .z( clmp_r[7]));

an02d1h ang0 (	.a1(g16), .a2(p_clmp_g[0]), .z( clmp_g[0]));
an02d1h ang1 (	.a1(g16), .a2(p_clmp_g[1]), .z( clmp_g[1]));
an02d1h ang2 (	.a1(g16), .a2(p_clmp_g[2]), .z( clmp_g[2]));
an02d1h ang3 (	.a1(g16), .a2(p_clmp_g[3]), .z( clmp_g[3]));
an02d1h ang4 (	.a1(g16), .a2(p_clmp_g[4]), .z( clmp_g[4]));
an02d1h ang5 (	.a1(g16), .a2(p_clmp_g[5]), .z( clmp_g[5]));
an02d1h ang6 (	.a1(g16), .a2(p_clmp_g[6]), .z( clmp_g[6]));
an02d1h ang7 (	.a1(g16), .a2(p_clmp_g[7]), .z( clmp_g[7]));

an02d1h anb0 (	.a1(b16), .a2(p_clmp_b[0]), .z( clmp_b[0]));
an02d1h anb1 (	.a1(b16), .a2(p_clmp_b[1]), .z( clmp_b[1]));
an02d1h anb2 (	.a1(b16), .a2(p_clmp_b[2]), .z( clmp_b[2]));
an02d1h anb3 (	.a1(b16), .a2(p_clmp_b[3]), .z( clmp_b[3]));
an02d1h anb4 (	.a1(b16), .a2(p_clmp_b[4]), .z( clmp_b[4]));
an02d1h anb5 (	.a1(b16), .a2(p_clmp_b[5]), .z( clmp_b[5]));
an02d1h anb6 (	.a1(b16), .a2(p_clmp_b[6]), .z( clmp_b[6]));
an02d1h anb7 (	.a1(b16), .a2(p_clmp_b[7]), .z( clmp_b[7]));

endmodule // cc_key_clamp