//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