1 //3—8译码器源代码
 2 module decoder_3_8(
 3     a,
 4     b,
 5     c,
 6     out
 7 );
 8     input a;
 9     input b;
10     input c;
11     output reg [7:0] out;
12     always @(*) begin
13         case({a,b,c})
14             3'b000:out=8'b0000_0001;
15             3'b001:out=8'b0000_0010;
16             3'b010:out=8'b0000_0100;
17             3'b011:out=8'b0000_1000;
18             3'b100:out=8'b0001_0000;
19             3'b101:out=8'b0010_0000;
20             3'b110:out=8'b0100_0000;
21             3'b111:out=8'b1000_0000;
22         endcase
23            /* 3'd0:out=8'b0000_0001;
24             3'd1=8'b0000_0010;
25             3'd2:out=8'b0000_0100;
26             3'd3:out=8'b0000_1000;
27             3'd4:out=8'b0001_0000;
28             3'd5:out=8'b0010_0000;
29             3'd6:out=8'b0100_0000;
30             3'd7:out=8'b1000_0000;*/
31     end
32 endmodule
33 //3—8译码器testbench源代码
34 `timescale 1ns/1ns
35 module decoder_3_8_tb();
36     reg s_a;
37     reg s_b;
38     reg s_c;
39     wire [7:0] s_out;
40     decoder_3_8 decoder_3_8_inst0(
41         .a(s_a),
42         .b(s_b),
43         .c(s_c),
44         .out(s_out)
45     );
46     initial begin
47     s_a=0;s_b=0;s_c=0;
48     #200;
49     s_a=0;s_b=0;s_c=1;
50     #200;
51     s_a=0;s_b=1;s_c=0;
52     #200;
53     s_a=0;s_b=1;s_c=1;
54     #200;
55     s_a=1;s_b=0;s_c=0;
56     #200;
57     s_a=1;s_b=0;s_c=1;
58     #200;
59     s_a=1;s_b=1;s_c=0;   
60     #200;
61     s_a=1;s_b=1;s_c=1;
62     #200;
63     $stop;
64     end
65 endmodule
66  

 

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