module mux_8_1(y,s,i);
output y;
reg y;
input [2:0]s;
input [7:0]i;
always @(*)
begin
case(s)
3'd0 : y=i[0];
3'd1 : y=i[1];
3'd2 : y=i[2];
3'd3 : y=i[3];
3'd4 : y=i[4];
3'd5 : y=i[5];
3'd6 : y=i[6];
3'd7 : y=i[7];
default y=1'b0;
endcase
end
endmodule
module tb_mux_8_1();
wire y;
reg [2:0]s;
reg [7:0]i;
mux_8_1 dux(y,s,i);
initial
begin
s=3'd0 ; i=8'b0000001;
#10 s=3'd1 ; i=8'b0000010;
#10 s=3'd2 ; i=8'b0000100;
#10 s=3'd3 ; i=8'b0000100;
#10 s=3'd4 ; i=8'b0001000;
#10 s=3'd5 ; i=8'b0010000;
#10 s=3'd6 ; i=8'b0100000;
#10 s=3'd7 ; i=8'b1000000;
#20 $finish;
end
endmodule
RTL SCHEMATIC:
POWER:
TIMING REPROT:
UTILIZATION REPORT: