新聞中心

FPGA三人表決器

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

一、項(xiàng)目介紹

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

本文引用地址:http://m.butianyuan.cn/article/202312/454067.htm

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

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

三、硬件部分

通過(guò)對(duì)此項(xiàng)目進(jìn)行評(píng)估我們發(fā)現(xiàn):
1.該項(xiàng)目需要三個(gè)輸入,我們可以通過(guò)撥碼開(kāi)關(guān)進(jìn)行實(shí)現(xiàn);
2.需要顯示模塊來(lái)表示投票情況,這里我們選用數(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;				//評(píng)委A
	input b;				//評(píng)委B
	input c;				//評(píng)委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;		
	//此處請(qǐng)參閱真值表,另根據(jù)硬件電路,LED為0時(shí)亮,故取反 
	endmodule

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

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

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

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

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



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉