//Behavioral description of 4-to-1- line multiplexer
//Describes the function table of Fig. 4-25(b).
module mux4x1_bh (i0,i1,i2,i3,i4,i5,i6,i7,select,y);
input i0,i1,i2,i3,i4,i5,i6,i7;
input [2:0] select;
output y;
reg y;
always @ (i0 or i1 or i2 or i3 or i4 or i5 or i6 or i7 or select)
case (select)
3'b000: y = i0;
3'b001: y = i1;
3'b010: y = i2;
3'b011: y = i3;
3'b100: y = i4;
3'b101: y = i5;
3'b110: y = i6;
3'b111: y = i7;
endcase
endmodule
module stimcrct;
reg i0,i1,i2,i3,i4,i5,i6,i7;
reg [2:0] select;
wire y;
mux4x1_bh cwd(i0,i1,i2,i3,i4,i5,i6,i7,y);
initial
begin
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b0; i5 = 1'b0; i6 = 1'b0; i7 = 1'b0; select = 3'b000;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b0; i5 = 1'b0; i6 = 1'b0; i7 = 1'b0; select = 3'b001;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b0; i5 = 1'b0; i6 = 1'b0; i7 = 1'b0; select = 3'b010;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b1; i4 = 1'b0; i5 = 1'b0; i6 = 1'b0; i7 = 1'b0; select = 3'b011;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b0; i5 = 1'b0; i6 = 1'b0; i7 = 1'b0; select = 3'b100;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b0; i5 = 1'b1; i6 = 1'b0; i7 = 1'b0; select = 3'b101;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b0; i5 = 1'b0; i6 = 1'b1; i7 = 1'b0; select = 3'b110;
#100
i0 = 1'b1; i1 = 1'b0; i2 = 1'b0; i3 = 1'b0; i4 = 1'b1; i5 = 1'b0; i6 = 1'b0; i7 = 1'b0; select = 3'b111;
#100
$finish;
end
endmodule
|