Augus

6.菜鸟初入FPGA之Case语句验证4-16译码器

0
阅读(3669)

    本次笔记记录的是4-16译码器的验证

 下面我们看一下4-16译码器的真值表

4-16真值表.jpg

从真值表中我们可以观察到,从十六组数据中取出要写程序的所需要的信息

例程:

module my_4_16(a,b,c,d,out);	
	input a;
	input b;
	input c;
	input d;	
	output reg [15:0]out;

	always @(a,b,c,d) begin//a,b,c,d作为敏感信号
		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'b0101 : 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'b1111_1111_1111_1111;
			//由于刚好16组数据,所以default语句不需要在写
		endcase		
	end	
endmodule

///`tb
`timescale 1ns/1ns
module my_4_16_tb;
	
	reg a;
	reg b;
	reg c;
	reg d;
	
	wire [15:0] out;
	
	my_4_16 my_4_16(
		.a(a),
		.b(b),
		.c(c),
		.d(d),
		.out(out)
	);
	
	initial begin
		a=0; b=0;c=0;d=0;
		#100;
		a=0; b=0;c=0;d=1;
		#100;
	        a=0; b=0;c=1;d=0;
		#100;
                a=0; b=0;c=1;d=1;
		#100;
                a=0; b=1;c=0;d=0;
		#100;
                a=0; b=1;c=0;d=1;
		#100;
                a=0; b=1;c=1;d=0;
		#100;
                a=0; b=1;c=1;d=1;
		#100;
                a=1; b=0;c=0;d=0;
		#100;
                a=1; b=0;c=0;d=1;
		#100;
                a=1; b=0;c=1;d=0;
		#100;
                a=1; b=0;c=1;d=1;
		#100;
                a=1; b=1;c=0;d=0;
		#100;
                a=1; b=1;c=0;d=1;
		#100;
                a=1; b=1;c=1;d=0;
		#100;
                a=1; b=1;c=1;d=1;
		#200;
		$stop;
	end
endmodule	

仿真波形图:

2016-03-26_110416.jpg


本次程序读懂真值表后不难写出,因为全部二进制书写,比较浪费时间.同样的,3-8译码器更容易写出


注: 程序模块名命名时不要以纯数字命名例如"4_16",编译时会报错

2016-03-26_110154.jpg


更多资料参考

                发烧友小梅哥专版 http://bbs.elecfans.com/zhuti_fpga_1.html

                   梦翼师兄的炼狱传奇