带优先级的三人表决器

1 设计要求:设计一个三人表决器,有3个裁判,其中有1位主裁判,2位副裁判。主裁判有否决权,即主裁判和其中一位副裁判投赞同票,决议方可通过,否则不通过。

注意:如果有了其中一人投赞同票就可以单票通过那就是决定权,如果必须有其中一人投赞同票才可以通过那就是否决权。

2 设计代码如下:

module vote3_pr0(
	input 	    wire		a,
	input		wire		b,
	input		wire		c,
	output	    reg 		y
);

	always@(*)begin
		if((a == 1'b0)&&((b == 1'b0)||(c == 1'b0)))
			y = 1'b1;
		else
			y = 1'b0;
	end

endmodule

仿真测试代码如下:

`timescale 1ns/1ps

module vote3_pro_tb();

	reg		a;
	reg		b;
	reg		c;
	wire		y;

	vote3_pro vote3_pro_inst(
		.a		(a),
		.b		(b),
		.c		(c),
		.y		(y)
	);
	
	initial begin
		a = 0; b = 0; c = 1; #20;
		a = 0; b = 0; c = 0; #20;
		a = 0; b = 1; c = 1; #20;
		a = 0; b = 1; c = 0; #20;
		a = 1; b = 0; c = 1; #20;
		a = 1; b = 0; c = 0; #20;
		a = 1; b = 1; c = 1; #20;
		a = 1; b = 1; c = 0; #20;
		$stop;
	end

endmodule 

仿真波形如下:


版权声明:本文为qq_41294540原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。