新聞中心

FPGA三人表決器

作者: 時(shí)間:2023-12-19 來源:電子森林 收藏

一、項(xiàng)目介紹

相信大家對電視中的選秀節(jié)目并不陌生,我們常常能夠見到一種比賽規(guī)則:當(dāng)三名評委中有兩名及以上同意選手晉級時(shí),該選手才能晉級,那么如何去實(shí)現(xiàn)該項(xiàng)目呢?

本文引用地址:http://2s4d.com/article/202312/454067.htm

二、實(shí)現(xiàn)原理

其實(shí)這一切都離不開數(shù)字電路,首先我們可以繪制出三人的真值表,然后用Verilog去實(shí)現(xiàn)它,真值表如下:

三、硬件部分

通過對此項(xiàng)目進(jìn)行評估我們發(fā)現(xiàn):
1.該項(xiàng)目需要三個(gè)輸入,我們可以通過撥碼開關(guān)進(jìn)行實(shí)現(xiàn);
2.需要顯示模塊來表示投票情況,這里我們選用數(shù)碼管進(jìn)行實(shí)現(xiàn);


四、Verilog實(shí)現(xiàn)

// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name    : debounce.v
// Module name  : debounce
// Author       : STEP
// Description  : 
// // --------------------------------------------------------------------
// Code Revision History : 
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2017/03/14   |Initial ver
// --------------------------------------------------------------------
// Module Function:三人 
module voter(a,b,c,num_led,result_led); 	
        input a;				//評委A
	input b;				//評委B
	input c;				//評委C
	output [2:0] num_led;	//投票數(shù)顯示;
	output result_led;		//投票結(jié)果顯示; 	
	assign num_led=~{a,b,c};	//用三個(gè)LED表示投票情況,另根據(jù)硬件電路,LED為0時(shí)亮,故取反
	assign result_led=~((!a&b&c)||(a&!b&c)||(a&b&!c)||(a&b&c))?1:0;		
	//此處請參閱真值表,另根據(jù)硬件電路,LED為0時(shí)亮,故取反 
	endmodule

五、實(shí)現(xiàn)效果

撥碼開關(guān)1、2、3分別代表評委A、B、C,LED1~3代表投票狀態(tài),例如,評委A投票,LED1亮,LED4代表是否通過。
下圖為無人投票時(shí),

下圖為有一位評委投票時(shí),

下圖為兩人進(jìn)行投票時(shí),可見投票通過指示燈已經(jīng)亮起;

最后,三人同時(shí)投票



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉