1 //4—16译码器源代码
 2 module decoder_4_16(
 3     a,
 4     b,
 5     c,
 6     d,
 7     out
 8 );
 9     input a;
10     input b;
11     input c;
12     input d;
13     output reg [15:0] out;
14     always @(*)begin
15         case({a,b,c,d})
16             4'b0000:out=16'b0000_0000_0000_0001;
17             4'b0001:out=16'b0000_0000_0000_0010;
18             4'b0010:out=16'b0000_0000_0000_0100;
19             4'b0011:out=16'b0000_0000_0000_1000;
20             4'b0100:out=16'b0000_0000_0001_0000;
21             4'b0100:out=16'b0000_0000_0010_0000;
22             4'b0110:out=16'b0000_0000_0100_0000;
23             4'b0111:out=16'b0000_0000_1000_0000;
24             4'b1000:out=16'b0000_0001_0000_0000;
25             4'b1001:out=16'b0000_0010_0000_0000;
26             4'b1010:out=16'b0000_0100_0000_0000;
27             4'b1011:out=16'b0000_1000_0000_0000;
28             4'b1100:out=16'b0001_0000_0000_0000;
29             4'b1101:out=16'b0010_0000_0000_0000;
30             4'b1110:out=16'b0100_0000_0000_0000;
31             4'b1111:out=16'b1000_0000_0000_0000;
32         endcase
33     end
34 endmodule
35 //4—16译码器testbench源代码
36 `timescale 1ns/1ns
37 module decoder_4_16_tb();
38     reg s_a;
39     reg s_b;
40     reg s_c;
41     reg s_d;
42     wire [15:0] s_out;
43     decoder_4_16 decoder_4_16_inst0(
44         .a(s_a),
45         .b(s_b),
46         .c(s_c),
47         .d(s_d),
48         .out(s_out)
49     );
50     initial begin
51         s_a=0;s_b=0;s_c=0;s_d=0;
52         #200;
53         s_a=0;s_b=0;s_c=0;s_d=1;
54         #200;
55         s_a=0;s_b=0;s_c=1;s_d=0;
56         #200;
57         s_a=0;s_b=0;s_c=1;s_d=1;
58         #200;
59         s_a=0;s_b=1;s_c=0;s_d=0;
60         #200;
61         s_a=0;s_b=1;s_c=0;s_d=1;
62         #200;
63         s_a=0;s_b=1;s_c=1;s_d=0;
64         #200;
65         s_a=0;s_b=1;s_c=1;s_d=1;
66         #200;
67         s_a=1;s_b=0;s_c=0;s_d=0;
68         #200;
69         s_a=1;s_b=0;s_c=0;s_d=1;
70         #200;
71         s_a=1;s_b=0;s_c=1;s_d=0;
72         #200;
73         s_a=1;s_b=0;s_c=1;s_d=1;
74         #200;
75         s_a=1;s_b=1;s_c=0;s_d=0;
76         #200;
77         s_a=1;s_b=1;s_c=0;s_d=1;
78         #200;
79         s_a=1;s_b=1;s_c=1;s_d=0;
80         #200;
81         s_a=1;s_b=1;s_c=1;s_d=1;
82         #200;
83         $stop;
84     end
85 endmodule
86  

 

posted on 2023-02-08 17:57  无情的造轮子  阅读(77)  评论(0编辑  收藏  举报