读书人

verilog语言的八路军选择器

发布时间: 2013-10-01 12:15:56 作者: rapoo

verilog语言的八路选择器

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

module mux8_to_1(out,i1,i2,i3,i4,i5,i6,i7,i8,s0,s1,s2);

input[3:0]i1,i2,i3,i4,i5,i6,i7,i8;

input s0,s1,s2;

output out;

reg[3:0] out;

always @(i1 or i2 or i3 or i4 ori5 or i6 or i7 or i8 or s0 or s1 or s2)

begin

case({s2,s1,s0})

3'b000: out=i1;

3'b001: out=i2;

3'b010: out=i3;

3'b011: out=i4;

3'b100: out=i5;

3'b101: out=i6;

3'b110: out=i7;

3'b111: out=i8;

default: out=3'bx;

endcase

end

endmodule

测试程序

`timescale 1ns / 1ps

////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////

module test_8;

// Inputs

reg [3:0] i1;

reg [3:0] i2;

reg [3:0] i3;

reg [3:0] i4;

reg [3:0] i5;

reg [3:0] i6;

reg [3:0] i7;

reg [3:0] i8;

reg s0;

reg s1;

reg s2;

// Outputs

wire [3:0] out;

// Instantiate the Unit UnderTest (UUT)

mux8_to_1 uut (

.out(out),

.i1(i1),

.i2(i2),

.i3(i3),

.i4(i4),

.i5(i5),

.i6(i6),

.i7(i7),

.i8(i8),

.s0(s0),

.s1(s1),

.s2(s2)

);

initial begin

// Initialize Inputs

i1 = 0;

i2 = 0;

i3 = 0;

i4 = 0;

i5 = 0;

i6 = 0;

i7 = 0;

i8 = 0;

s0 = 0;

s1 = 0;

s2 = 0;

// Wait 100 ns for globalreset to finish

#100;

#20 i1 = 4'b0001;

i2 = 0;

i3 = 0;

i4 = 0;

i5 = 0;

i6 = 0;

i7 = 0;

i8 = 0;

s0 = 0;

s1 = 0;

s2 = 0;

#20 i1 = 0;

i2 = 4'b0011;

i3 = 0;

i4 = 0;

i5 = 0;

i6 = 0;

i7 = 0;

i8 = 0;

s0 = 1;

s1 = 0;

s2 = 0;

#20 i1 = 0;

i2 = 0;

i3 = 4'b0101;

i4 = 0;

i5 = 0;

i6 = 0;

i7 = 0;

i8 = 0;

s0 = 0;

s1 = 1;

s2 = 0;

#20 i1 = 0;

i2 = 0;

i3 = 0;

i4 = 4'b0111;

i5 = 0;

i6 = 0;

i7 = 0;

i8 = 0;

s0 = 1;

s1 = 1;

s2 = 0;

#20i1 = 0;

i2 = 0;

i3 = 0;

i4 = 0;

i5 = 4'b0111;

i6 = 0;

i7 = 0;

i8 = 0;

s0 = 0;

s1 = 0;

s2 = 1;

#20i1 = 0;

i2 = 0;

i3 = 0;

i4 = 0;

i5 = 0;

i6 = 4'b1010;

i7 = 0;

i8 = 0;

s0 = 1;

s1 = 0;

s2 = 1;

#20 i1 = 0;

i2 = 0;

i3 = 0;

i4 = 0;

i5 = 0;

i6 = 0;

i7 = 4'b0101;

i8 = 0;

s0 = 0;

s1 = 1;

s2 = 1;

#20 i1 = 0;

i2 = 0;

i3 = 0;

i4 = 0;

i5 = 0;

i6 = 0;

i7 = 0;

i8 = 4'b1000;

s0 = 1;

s1 = 1;

s2 = 1;

// Add stimulus here

end

endmodule

读书人网 >其他相关

热点推荐