sudp_mx41.v 4.83 KB
/*
*************************************************************************
*									*
*               Copyright (C) 1994, Silicon Graphics, Inc.		*
*									*
*  These coded instructions, statements, and computer programs  contain	*
*  unpublished  proprietary  information of Silicon Graphics, Inc., and	*
*  are protected by Federal copyright  law.  They  may not be disclosed	*
*  to  third  parties  or copied or duplicated in any form, in whole or	*
*  in part, without the prior written consent of Silicon Graphics, Inc.	*
*									*
*************************************************************************
*/

/*
*************************************************************************
*									*
*  Project Reality							*
*									*
*  module:	sudp_mx41.v						*
*  description:	32 bit 4 to 1 low performance mux using mx41d1 cells	*
*									*
*  designer:	Phil Gossett						*
*  date:	4/7/95							*
*									*
*************************************************************************
*/

// $Id: sudp_mx41.v,v 1.1.1.1 2002/05/17 06:14:58 blythe Exp $

module sudp_mx41 (s, i0, i1, i2, i3, z);

input [1:0] s;
input [31:0] i0;
input [31:0] i1;
input [31:0] i2;
input [31:0] i3;

output [31:0] z;

wire [1:0] sa;
wire [1:0] sb;
wire [1:0] sc;
wire [1:0] sd;

ni01d5 nis0a (.i(s[0]), .z(sa[0]));
ni01d5 nis1a (.i(s[1]), .z(sa[1]));
ni01d5 nis0b (.i(s[0]), .z(sb[0]));
ni01d5 nis1b (.i(s[1]), .z(sb[1]));
ni01d5 nis0c (.i(s[0]), .z(sc[0]));
ni01d5 nis1c (.i(s[1]), .z(sc[1]));
ni01d5 nis0d (.i(s[0]), .z(sd[0]));
ni01d5 nis1d (.i(s[1]), .z(sd[1]));

mx41d1 mx0  (.z(z[0]),  .i0(i0[0]),  .i1(i1[0]),  .i2(i2[0]),  .i3(i3[0]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx1  (.z(z[1]),  .i0(i0[1]),  .i1(i1[1]),  .i2(i2[1]),  .i3(i3[1]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx2  (.z(z[2]),  .i0(i0[2]),  .i1(i1[2]),  .i2(i2[2]),  .i3(i3[2]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx3  (.z(z[3]),  .i0(i0[3]),  .i1(i1[3]),  .i2(i2[3]),  .i3(i3[3]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx4  (.z(z[4]),  .i0(i0[4]),  .i1(i1[4]),  .i2(i2[4]),  .i3(i3[4]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx5  (.z(z[5]),  .i0(i0[5]),  .i1(i1[5]),  .i2(i2[5]),  .i3(i3[5]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx6  (.z(z[6]),  .i0(i0[6]),  .i1(i1[6]),  .i2(i2[6]),  .i3(i3[6]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx7  (.z(z[7]),  .i0(i0[7]),  .i1(i1[7]),  .i2(i2[7]),  .i3(i3[7]),
			.s0(sa[0]),  .s1(sa[1]));
mx41d1 mx8  (.z(z[8]),  .i0(i0[8]),  .i1(i1[8]),  .i2(i2[8]),  .i3(i3[8]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx9  (.z(z[9]),  .i0(i0[9]),  .i1(i1[9]),  .i2(i2[9]),  .i3(i3[9]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx10 (.z(z[10]), .i0(i0[10]), .i1(i1[10]), .i2(i2[10]), .i3(i3[10]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx11 (.z(z[11]), .i0(i0[11]), .i1(i1[11]), .i2(i2[11]), .i3(i3[11]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx12 (.z(z[12]), .i0(i0[12]), .i1(i1[12]), .i2(i2[12]), .i3(i3[12]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx13 (.z(z[13]), .i0(i0[13]), .i1(i1[13]), .i2(i2[13]), .i3(i3[13]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx14 (.z(z[14]), .i0(i0[14]), .i1(i1[14]), .i2(i2[14]), .i3(i3[14]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx15 (.z(z[15]), .i0(i0[15]), .i1(i1[15]), .i2(i2[15]), .i3(i3[15]),
			.s0(sb[0]),  .s1(sb[1]));
mx41d1 mx16 (.z(z[16]), .i0(i0[16]), .i1(i1[16]), .i2(i2[16]), .i3(i3[16]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx17 (.z(z[17]), .i0(i0[17]), .i1(i1[17]), .i2(i2[17]), .i3(i3[17]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx18 (.z(z[18]), .i0(i0[18]), .i1(i1[18]), .i2(i2[18]), .i3(i3[18]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx19 (.z(z[19]), .i0(i0[19]), .i1(i1[19]), .i2(i2[19]), .i3(i3[19]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx20 (.z(z[20]), .i0(i0[20]), .i1(i1[20]), .i2(i2[20]), .i3(i3[20]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx21 (.z(z[21]), .i0(i0[21]), .i1(i1[21]), .i2(i2[21]), .i3(i3[21]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx22 (.z(z[22]), .i0(i0[22]), .i1(i1[22]), .i2(i2[22]), .i3(i3[22]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx23 (.z(z[23]), .i0(i0[23]), .i1(i1[23]), .i2(i2[23]), .i3(i3[23]),
			.s0(sc[0]),  .s1(sc[1]));
mx41d1 mx24 (.z(z[24]), .i0(i0[24]), .i1(i1[24]), .i2(i2[24]), .i3(i3[24]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx25 (.z(z[25]), .i0(i0[25]), .i1(i1[25]), .i2(i2[25]), .i3(i3[25]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx26 (.z(z[26]), .i0(i0[26]), .i1(i1[26]), .i2(i2[26]), .i3(i3[26]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx27 (.z(z[27]), .i0(i0[27]), .i1(i1[27]), .i2(i2[27]), .i3(i3[27]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx28 (.z(z[28]), .i0(i0[28]), .i1(i1[28]), .i2(i2[28]), .i3(i3[28]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx29 (.z(z[29]), .i0(i0[29]), .i1(i1[29]), .i2(i2[29]), .i3(i3[29]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx30 (.z(z[30]), .i0(i0[30]), .i1(i1[30]), .i2(i2[30]), .i3(i3[30]),
			.s0(sd[0]),  .s1(sd[1]));
mx41d1 mx31 (.z(z[31]), .i0(i0[31]), .i1(i1[31]), .i2(i2[31]), .i3(i3[31]),
			.s0(sd[0]),  .s1(sd[1]));

endmodule  //  sudp_mx41