首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

verilog语言的八路军选择器

2013-10-01 
verilog语言的八路选择器`timescale 1ns / 1ps////////////////////////////////////////////////////////

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

 

 

 

热点排行