首页 > 其他分享 >小梅哥课程学习——4—16译码器源代码和仿真文件

小梅哥课程学习——4—16译码器源代码和仿真文件

时间:2023-02-08 18:14:20浏览次数:36  
标签:200 0000 16 b0000 reg 源代码 译码器 out

//4—16译码器源代码
module decoder_4_16(
    a,
    b,
    c,
    d,
    out
);
    input a;
    input b;
    input c;
    input d;
    output reg [15:0] out;
    always @(*)begin
        case({a,b,c,d})
            4'b0000:out=16'b0000_0000_0000_0001;
            4'b0001:out=16'b0000_0000_0000_0010;
            4'b0010:out=16'b0000_0000_0000_0100;
            4'b0011:out=16'b0000_0000_0000_1000;
            4'b0100:out=16'b0000_0000_0001_0000;
            4'b0100:out=16'b0000_0000_0010_0000;
            4'b0110:out=16'b0000_0000_0100_0000;
            4'b0111:out=16'b0000_0000_1000_0000;
            4'b1000:out=16'b0000_0001_0000_0000;
            4'b1001:out=16'b0000_0010_0000_0000;
            4'b1010:out=16'b0000_0100_0000_0000;
            4'b1011:out=16'b0000_1000_0000_0000;
            4'b1100:out=16'b0001_0000_0000_0000;
            4'b1101:out=16'b0010_0000_0000_0000;
            4'b1110:out=16'b0100_0000_0000_0000;
            4'b1111:out=16'b1000_0000_0000_0000;
        endcase
    end
endmodule
//4—16译码器testbench源代码
`timescale 1ns/1ns
module decoder_4_16_tb();
    reg s_a;
    reg s_b;
    reg s_c;
    reg s_d;
    wire [15:0] s_out;
    decoder_4_16 decoder_4_16_inst0(
        .a(s_a),
        .b(s_b),
        .c(s_c),
        .d(s_d),
        .out(s_out)
    );
    initial begin
        s_a=0;s_b=0;s_c=0;s_d=0;
        #200;
        s_a=0;s_b=0;s_c=0;s_d=1;
        #200;
        s_a=0;s_b=0;s_c=1;s_d=0;
        #200;
        s_a=0;s_b=0;s_c=1;s_d=1;
        #200;
        s_a=0;s_b=1;s_c=0;s_d=0;
        #200;
        s_a=0;s_b=1;s_c=0;s_d=1;
        #200;
        s_a=0;s_b=1;s_c=1;s_d=0;
        #200;
        s_a=0;s_b=1;s_c=1;s_d=1;
        #200;
        s_a=1;s_b=0;s_c=0;s_d=0;
        #200;
        s_a=1;s_b=0;s_c=0;s_d=1;
        #200;
        s_a=1;s_b=0;s_c=1;s_d=0;
        #200;
        s_a=1;s_b=0;s_c=1;s_d=1;
        #200;
        s_a=1;s_b=1;s_c=0;s_d=0;
        #200;
        s_a=1;s_b=1;s_c=0;s_d=1;
        #200;
        s_a=1;s_b=1;s_c=1;s_d=0;
        #200;
        s_a=1;s_b=1;s_c=1;s_d=1;
        #200;
        $stop;
    end
endmodule

 

标签:200,0000,16,b0000,reg,源代码,译码器,out
From: https://www.cnblogs.com/wangwin4/p/17102820.html

相关文章